13

我已将 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.

这是怎么回事?这已经工作了好几个月,但最近停止工作。

4

3 回答 3

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/
于 2011-08-09T03:46:25.447 回答
2

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

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

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

/Developer

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

/Developer (iOS SDK XXX beta)

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

"/Developer/usr/bin/opendiff" $2 $5
于 2011-02-18T03:08:42.407 回答
1

首先是xcode的安装路径从4.3开始修改,所以必须重新选择xcode路径

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

于 2012-02-22T08:52:28.183 回答