与opendiff的git diff给出“无法启动FileMerge”错误

时间:2011-02-18 03:02:24

标签: xcode git filemerge opendiff

我让git配置为使用〜/ bin / opendiff-git.sh作为我的外部差异工具。该脚本如下所示:

opendiff $2 $5

当我尝试从命令行执行git diff时,我收到此消息:

2011-02-18 13:58:55.532 opendiff[27959:60f] exception raised trying to run FileMerge: launch path not accessible
2011-02-18 13:58:55.535 opendiff[27959:60f] Couldn't launch FileMerge
external diff died, stopping at source/some_file.m.

发生了什么事?这已经工作了好几个月,但最近停止了工作。

3 个答案:

答案 0 :(得分:31)

所以在我删除beta开发人员文件夹以尝试解决此问题后(无法使用合并工具进行修复)我在命令行中偶然发现了这一点:

Error: No developer directory found at /Developer Beta. Run /usr/bin/xcode-select to update the developer directory path.

事实证明,您可以设置您需要使用的开发人员路径:

Usage: xcode-select -print-path
   or: xcode-select -switch <xcode_folder_path>
   or: xcode-select -version
Arguments:
   -print-path                     Prints the path of the current Xcode folder
   -switch <xcode_folder_path>     Sets the path for the current Xcode folder
   -version  

看起来安装测试版已经自动设置了测试路径。要修复它,请运行:

sudo /usr/bin/xcode-select -switch /Developer

为我修好了。

更新

Ying在下面的评论非常重要,可以包含在答案中。从Xcode 4.3开始,文件夹的位置已更改为应用程序包内部:

sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/

答案 1 :(得分:2)

如果您安装了两个SDK,并且最新版本(可能是测试版)没有安装系统工具,则某些工具(如opendiff)可能会中断。您一次只能安装一套系统工具,因此您必须选择具有它的SDK /安装。我通过使用安装了系统工具的Developer文件夹中opendiff的路径来解决此问题。

就我而言,我有以下Xcode安装:

当前稳定版本(安装了系统工具)

/Developer

最新测试版(未安装系统工具)

/Developer (iOS SDK XXX beta)

我的~/bin/opendiff-git.sh脚本现在看起来像这样:

"/Developer/usr/bin/opendiff" $2 $5

答案 2 :(得分:1)

首先原因是自4.3以来修改了xcode的安装路径,所以必须重新选择xcode路径

完整指南在以下链接中: http://useyourloaf.com/blog/2012/2/17/updating-to-xcode-43.html