-
-
Save shawndumas/6158524 to your computer and use it in GitHub Desktop.
[mergetool] | |
prompt = false | |
keepBackup = false | |
keepTemporaries = false | |
[merge] | |
tool = winmerge | |
[mergetool "winmerge"] | |
name = WinMerge | |
trustExitCode = true | |
cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e -dl \"Local\" -dr \"Remote\" $LOCAL $REMOTE $MERGED | |
[diff] | |
tool = winmerge | |
[difftool "winmerge"] | |
name = WinMerge | |
trustExitCode = true | |
cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE |
Warning: This is right for diffs, but this will burn you if you use it for merges! I used this and had to redo my merge changes.
Use mrsteklo's version of the options above, or alternatively:
cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e -wl -wr $LOCAL $BASE $REMOTE -o $MERGED
@christopherliu I think this method is not correct. Especially that you use the $BASE
. This is because in this case, the base code is shown in the middle panel, the base code is normally the common ancestor commit of the both two git branches, and you have to manually add many changes from both the left(local) and right(remote) commits.
I would suggest you could use $MERGED
, this is already generated file by git, and some parts of the changes are already merged without any conflict, it it see a conflict, git will put something like <<<<<<<<<
and >>>>>>>>
in the $MERGED
, so that you can edit the conflict part.
Finally this worked for me
[mergetool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = ""C:/Program Files (x86)/WinMerge/WinMergeU.exe" "$LOCAL" "$REMOTE" "$MERGED" >/dev/null 2>&1"
[diff]
tool = winmerge
[difftool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = ""C:/Program Files (x86)/WinMerge/WinMergeU.exe" "$REMOTE" "$LOCAL" >/dev/null 2>&1"
command to diff
"git difftool"
and from winmerge I manually merge with winmerge functionality
For folks like me who really don't like WinMerge 3-way UI, but are fine with 2-way UI:
[mergetool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" \"$REMOTE\"
This makes WinMerge parse the conflicts and show a 2-way UI where the left hand side ("Mine") is what eventually saved to the file.
Hi, mrsteklo, thanks.
I just tried, and I think your method is correct, thanks!
When I see in the middle panel, there are many ">>>>>> or <<<<<<<" like text, is that correct?
Do I need to manually "copy right to middle" or "copy left to middle" to solve such conflict?
Thanks!