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:
My configuration is:
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?
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.