2014-01-21 223 views
2

当我运行git-diffallhttps://github.com/thenigan/git-diffall)或git difftool --dir-diff(均来自@Tim Henigan's SO post引用),我收到以下错误:混帐diffall和git difftool --dir-DIFF不Araxis工作合并

Not enough arguments for a three-way comparison.

我的配置是:

  • GitHub上的Windows 1.2.6.4 f054d9f(其中坐在msysgit 1.8.4的顶部)
  • Araxis合并2013镨ofessional版2013.4296
  • 辣妹的Git PowerShell提示符所附带的GitHub的Windows

什么是很奇怪的是,这完全一样的设置工作我的另一台机器上。

git config --global diff.toolgit config --local diff.tool都如预期的那样返回“araxis”。

当地实际回购的配置包含本节:

[diff] 
    tool = araxis 
[difftool "araxis"] 
    path = C:/Program Files/Araxis/Araxis Merge/compare.exe 
    prompt = false 
[merge] 
    tool = araxis 
[mergetool "araxis"] 
    path = C:/Program Files/Araxis/Araxis Merge/compare.exe 

这是从Araxis' documentation引用。

我不确定参数实际上是如何传递给Araxis的,因此不知道如何排除故障。

需要执行哪些步骤来纠正我的配置,以便我可以使用Araxis Merge做目录比较?

+1

注意:'git diffall'正在被移除以用于git 2.0.X/2.1:请参阅http://stackoverflow.com/a/24979228/6309 – VonC

+0

感谢您的提醒,@VonC。很高兴看到它不再是必要的。 –

回答

1

一段时间后,我发现了问题的原因。虽然我上面的研究是准确的,但并没有揭示整个故事。经过更多的挖掘,我发现了原因。

我做了git config --global -lgit config --local -l的输出之间的差异,并意识到我有一些矛盾的(和错误的)我的difftools配置。我不确定他们是如何失去同步的,但他们完全不同的是死亡的赠品。

我的全局配置是这样的:

[merge] 
    tool = Araxis 
[mergetool "kdiff3"] 
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe 
[diff] 
    guitool = araxis 
    tool = araxis 
[difftool "kdiff3"] 
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe 
[difftool] 
    prompt = false 
[difftool "Araxis"] 
    path = C:/Program Files/Araxis/Araxis Merge/Compare.exe 
    cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" 
[mergetool "Araxis"] 
    path = C:/Program Files/Araxis/Araxis Merge/Compare.exe 
    cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" 
[difftool "araxis"] 
    path = C:/Program Files/Araxis/Araxis Merge/Compare.exe 
    cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" 

我与我的本地配置的内容所取代它(在OP发布),并从我的本地配置打消了我的工具配置。

这样做后,我的问题完全消失。

我做了使用git config --global -egit config --local -e的实际编辑,以便没有错误地编辑正确的文件。

+0

尼斯详细的反馈。 +1 – VonC