2014-01-21 79 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