Just a guess: if Git already (in its factory configuration) knows about bc3 tool, it will use mergetool.bc3.path
along with standard arguments. If not, it looks for mergetool.bc3.cmd
, but this one needs to have the correct arguments indicated in the command:
mergetool.bc3.cmd="'c:/apps/BeyondCompare3/bcomp.exe' '$LOCAL' '$REMOTE' '$BASE' '$MERGED'"
For an obscure reason, on machine B Git doesn't know invocation of bc3
, and falls back using mergetool.bc3.cmd
which in your case misses the correct arguments. On machine A, Git knows how to talk to BC3, and will use the correct invocation of the tool, using only mergetool.bc3.path
.
To validate this delete respectively mergetool.bc3.cmd
and mergetool.bc3.path
on machine A and B, the behaviours should be exactly the same as you observe.
To fix it, use the complete invocation on mergetool.bc3.cmd
.