2015-09-23 110 views
15

我经常使用Atlassian SourceTree(在Mac OS X上)启动FileMerge来解决git合并冲突。突然之间它已停止工作:当我右键单击并选择Resolve Conflicts > Launch External Merge Tool时,FileMerge启动,创建其中间文件,然后立即退出。 SourceTree将此解释为合并过程完成。FileMerge从SourceTree启动后立即退出

什么问题,我该如何调试/修复它?

我注意到前面的问题'SourceTree filemerge quits immediately and creates 4 files. How to fix it?'没有解决这个特定的场景(一个,它说FileMerge在标题中退出,但是在FileMerge中显示FileMerge显示/ dev/null作为一个面板。 ,我的合并冲突不是由于删除的文件造成的。)

回答

6

如果Xcode最近更新了自己,您可能需要同意新的许可条款。如果您尚未同意许可条款,则FileMerge(从SourceTree启动时)将立即退出。

要检查这一点,打开shell并运行为你平时的用户:

$ opendiff 

如果许可证的问题,它会告诉你。以同意新的许可条款,则需要使用sudo运行开放DIFF:

$ sudo opendiff 

同意许可条款后,您现在可以重试使用Resolve Conflicts > Launch External Merge Tool从SourceTree启动FileMerge。 FileMerge应该启动并正常运行。

+3

它说'opendiff xcode选择:错误:工具'opendiff'需要Xcode,但活动开发人员目录'/ Library/Developer/CommandLineTools'是一个命令行工具实例' – KarenAnne

25

为了诊断问题,我从终端运行opendiff。我收到以下错误:

xcode-select: error: tool 'opendiff' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

解决:

  1. 打开的Xcode>首选项>位置
  2. 点击下拉框旁边命令行工具和选择当前Xcode版本。 (这对我来说是空的,因为我最近在一个新的Mac安装的Xcode。)

Command Line Tools

  • 运行opendiff在终端一遍,上面的错误不应该更长时间出现
  • 现在FileMerge将从SourceTree正确打开,当你点击启动外部合并工具

    +0

    问题解决了,简单修复感谢芽! :) – emotality

    +0

    非常感谢。我遇到了同样的问题,并发现它必须与XCode相关,但不知道如何修复它。 – Ray

    +0

    @射你非常欢迎。 :) – ChrisJF

    4

    对我来说,SourceTree甚至没有启动FileMerge。点击启动外部合并工具什么都没有发生。

    此外,在终端中运行opendiff预期一样:

    $ opendiff 
    opendiff[64176:5561154] too few arguments 
    opendiff[64176:5561154] usage: opendiff file1 file2 [-ancestor ancestorFile] [-merge mergeFile] 
    

    什么帮助了我是手动配置SourceTree通过opendiff命令使用以下参数使用FileMerge:$LOCAL $REMOTE -ancestor $BASE -merge $MERGED

    SourceTree manually configure to use opendiff

    这样,SourceTree按预期打开FileMerge。

    +0

    同样在这里,但我不知道为什么它不工作时,只需设置文件合并 – MegaManX

    3

    这也适用于解决该消息“的Xcode选:错误:工具‘了opendiff’需要的Xcode,但活跃的开发目录‘/资源库/开发/ CommandLineTools’是一个命令行工具,例如”

    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 
    
    +1

    即确保您的Xcode选择实际上是指向实际Xcode实例的'/ Contents/Developer'子目录。有帮助,谢谢 –

    +0

    我的实例没有这样的目录,任何提示? – Matt

    +0

    你从appstore下载了xcode吗? – fabe

    相关问题