Question

When I run git-diffall (https://github.com/thenigan/git-diffall) or git difftool --dir-diff (both referenced from @Tim Henigan's SO post), I get the following error:

Not enough arguments for a three-way comparison.

My configuration is:

  • GitHub for Windows 1.2.6.4 f054d9f (which sits on top of msysgit 1.8.4)
  • Araxis Merge 2013 Professional Edition 2013.4296
  • Posh Git PowerShell prompt which ships with GitHub for Windows

What is very strange is that this exact same setup works on my other machine.

Both git config --global diff.tool and git config --local diff.tool return "araxis" as expected.

The actual local repo config contains this section:

[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

Which is referenced from Araxis' documentation.

I'm not exactly sure how the parameters actually get passed to Araxis and therefore do not know how to troubleshoot this any further.

What steps do I need to perform to correct my configuration so that I can do a directory comparison using Araxis Merge?

Was it helpful?

Solution

After putting this down and coming back to it some time later, I discovered the cause of my issue. Though my research above was accurate, it did not reveal the entire story. After some more digging, I discovered the cause.

I did a diff between the output of git config --global -l and git config --local -l and realized that I had some conflicting (and erroneous) configurations for my difftools. I'm not sure how they got out of sync but that they were different at all was the dead giveaway.

My global configuration looked like this:

[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\"

I replaced it with the contents of my local configuration (posted in the OP) and removed my tooling configuration from my local config.

After doing so, my problem went away entirely.

I did the actual editing using git config --global -e and git config --local -e so that there was no mistaking editing the correct files.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top