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.