Browse Source
"git mergetool" learned to drive WinMerge as a backend. * da/mergetool-winmerge: mergetools: add winmerge as a builtin tool mergetool--lib: set IFS for difftool and mergetoolmaint
Junio C Hamano
10 years ago
3 changed files with 39 additions and 2 deletions
@ -0,0 +1,36 @@
@@ -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 |
||||
} |
Loading…
Reference in new issue