2014-09-03 21 views
4

我已经配置IntelliJ作为我的差异和mergetool我的mac,但git启动它,命令行总是立即返回,而不是等待差异完成,这意味着所制定的更改不会反映在磁盘上。使用IntelliJ作为混帐mergetool总是尽快退出,一旦它开始

我的配置是:

[mergetool "intellij"] 
    cmd = /Applications/IntelliJ\\ IDEA\\ 13\\ CE.app/Contents/MacOS/idea merge \ 
      $(cd $(dirname \"$LOCAL\") && pwd)/$(basename \"$LOCAL\") \ 
      $(cd $(dirname \"$REMOTE\") && pwd)/$(basename \"$REMOTE\") \ 
      $(cd $(dirname \"$BASE\") && pwd)/$(basename \"$BASE\") 
      $(cd $(dirname \"$MERGED\") && pwd)/$(basename \"$MERGED\") 
    trustExitCode = true 

我打电话测试的IntelliJ手不混帐,它也立即返回,所以我不认为这根本是Git的调用造成的,不如说的IntelliJ命令行调用只是发送一个消息来打开窗口到IntelliJ现有的运行实例..是否有一个选项强制IntelliJ不返回或产生一个新的实例,使其工作?

+0

你确定这些反斜杠结束符是否在'.gitconfig'文件中? – 2017-01-18 13:48:13

回答

2

没有办法做到这一点。有三种解决方法:

  1. 在使用difftool之前关闭现有应用程序。如果没有其他窗口打开,mergetool将正常工作。

  2. 使用IntelliJ的第二个实例与different caches and config home但请注意第二个实例的许​​可。例如,如果您使用许可证服务器,则两个实例都将从服务器获取许可证。

  3. 在启动脚本中添加诸如暂停(在Windows上)。所以git会调用BAT文件(在Windows上),这个BAT文件将调用IntelliJ,然后等待输入。在您完成所有需要的操作后,您应该返回控制台并手动按任意键。

相关问题