Gre*_*pff 33 xcode filemerge atlassian-sourcetree
我经常使用Atlassian SourceTree(在Mac OS X上)启动FileMerge来解决git合并冲突.突然之间,它已停止工作:当我右键单击并选择时Resolve Conflicts > Launch External Merge Tool,FileMerge启动,创建其中间文件,然后立即退出.SourceTree解释为合并过程完成.
问题是什么?如何调试/修复它?
我注意到之前的问题' SourceTree filemerge立即退出并创建了4个文件.怎么解决?'没有解决这个特定情况(例如,它说FileMerge在标题中退出,但在正文中它表示FileMerge将/ dev/null显示为其中一个面板.此外,我的合并冲突不是由于删除了文件. )
Chr*_*sJF 101
为了诊断问题,我opendiff从终端跑了.我收到以下错误:
xcode-select:错误:工具'opendiff'需要Xcode,但是活动的开发人员目录'/ Library/Developer/CommandLineTools'是一个命令行工具实例
要解决:
opendiff再次在终端中运行,不再出现上述错误.现在,当您单击" 启动外部合并工具"时,FileMerge将从SourceTree正确打开.
Tom*_*ina 11
对我来说,SourceTree甚至没有启动FileMerge.单击" 启动外部合并工具"时没有任何操作.
此外,opendiff在终端中运行按预期工作:
$ opendiff
opendiff[64176:5561154] too few arguments
opendiff[64176:5561154] usage: opendiff file1 file2 [-ancestor ancestorFile] [-merge mergeFile]
Run Code Online (Sandbox Code Playgroud)
帮助我的是通过以下参数手动配置SourceTree以使用FileMergeopendiff:$LOCAL $REMOTE -ancestor $BASE -merge $MERGED
这样,SourceTree按预期打开FileMerge.
如果Xcode最近自行更新,您可能需要同意新的许可条款.如果您尚未同意许可条款,FileMerge(从SourceTree启动时)将立即退出.
要检查这一点,请打开一个shell并以普通用户身份运行:
$ opendiff
Run Code Online (Sandbox Code Playgroud)
如果许可证是问题,它会告诉你.要同意新的许可条款,您需要使用sudo以下命令运行open diff :
$ sudo opendiff
Run Code Online (Sandbox Code Playgroud)
在同意许可条款后,您现在可以尝试使用从SourceTree重新启动FileMerge Resolve Conflicts > Launch External Merge Tool.FileMerge应该启动并正常运行.
这也可以解决消息“xcode-select:错误:工具'opendiff'需要Xcode,但活动开发人员目录'/Library/Developer/CommandLineTools'是命令行工具实例”:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Run Code Online (Sandbox Code Playgroud)
小智 6
这有所帮助:https : //gist.github.com/kylefox/4512777
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
git config --global merge.tool opendiff
| 归档时间: |
|
| 查看次数: |
8157 次 |
| 最近记录: |