[PATCH v3] mergetools: add winmerge as a builtin tool
- From
David Aguilar <davvid@gmail.com>
- Date
- May 20, 2015, 04:20 UTC
- Message-ID
- <1432095635-96710-1-git-send-email-davvid@gmail.com>
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> --- Changes since v2: We now use "$PROGRAMFILES" exclusively and let the shell concatenate the " (x86)" part when testing filesystem paths. The C:/... hard-coded fallbacks have been removed since $PROGRAMFILES should exist in practice.
mergetools/winmerge | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 mergetools/winmerge
diff --git a/mergetools/winmerge b/mergetools/winmerge new file mode 100644 index 0000000..435623c --- /dev/null +++ b/mergetools/winmerge @@ -0,0 +1,35 @@ +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 WinMergeU.exe >/dev/null 2>&1 + then + echo WinMergeU.exe + return + fi + + # Look for WinMergeU.exe in the typical locations + winmerge_exe="WinMerge/WinMergeU.exe" + + if test -n "$PROGRAMFILES" && test -x "$PROGRAMFILES (x86)/$winmerge_exe" + then + printf '%s' "$PROGRAMFILES (x86)/$winmerge_exe" + elif test -n "$PROGRAMFILES" && test -x "$PROGRAMFILES/$winmerge_exe" + then + printf '%s' "$PROGRAMFILES/$winmerge_exe" + else + echo WinMergeU.exe + fi +}
-- 2.4.1.218.g416b006