diff options
author | David Aguilar <davvid@gmail.com> | 2015-05-20 02:07:23 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-05-20 13:13:44 -0700 |
commit | 3e4f2373b295e19dbc1a6bd0e743f65b500b7bda (patch) | |
tree | 6f01b1a4c5fd077ad07b99b19a9fdc58a031f552 /mergetools | |
parent | 719518f5cebba0fb4ed6caf6d92d683e858120f0 (diff) | |
download | git-3e4f2373b295e19dbc1a6bd0e743f65b500b7bda.tar.gz git-3e4f2373b295e19dbc1a6bd0e743f65b500b7bda.tar.xz |
mergetools: add winmerge as a builtin tool
Add a winmerge scriptlet with the commands described in [1] so
that users can use winmerge without needing to perform any
additional configuration.
[1] http://thread.gmane.org/gmane.comp.version-control.git/268631
Helped-by: Philip Oakley <philipoakley@iee.org>
Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Helped-by: Sebastian Schuberth <sschuberth@gmail.com>
Helped-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'mergetools')
-rw-r--r-- | mergetools/winmerge | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/mergetools/winmerge b/mergetools/winmerge new file mode 100644 index 000000000..74a66d4e8 --- /dev/null +++ b/mergetools/winmerge @@ -0,0 +1,36 @@ +diff_cmd () { + "$merge_tool_path" -u -e "$LOCAL" "$REMOTE" + return 0 +} + +merge_cmd () { + # mergetool.winmerge.trustExitCode is implicitly false. + # touch $BACKUP so that we can check_unchanged. + touch "$BACKUP" + "$merge_tool_path" -u -e -dl Local -dr Remote \ + "$LOCAL" "$REMOTE" "$MERGED" + check_unchanged +} + +translate_merge_tool_path() { + # Use WinMergeU.exe if it exists in $PATH + if type -p WinMergeU.exe >/dev/null 2>&1 + then + printf WinMergeU.exe + return + fi + + # Look for WinMergeU.exe in the typical locations + winmerge_exe="WinMerge/WinMergeU.exe" + for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' | + cut -d '=' -f 2- | sort -u) + do + if test -n "$directory" && test -x "$directory/$winmerge_exe" + then + printf '%s' "$directory/$winmerge_exe" + return + fi + done + + printf WinMergeU.exe +} |