mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
Merge branch 'da/mergetool-winmerge'
"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 mergetool
This commit is contained in:
commit
324a9f41cb
|
@ -2,6 +2,9 @@
|
|||
|
||||
: ${MERGE_TOOLS_DIR=$(git --exec-path)/mergetools}
|
||||
|
||||
IFS='
|
||||
'
|
||||
|
||||
mode_ok () {
|
||||
if diff_mode
|
||||
then
|
||||
|
|
|
@ -451,8 +451,6 @@ fi
|
|||
printf "Merging:\n"
|
||||
printf "%s\n" "$files"
|
||||
|
||||
IFS='
|
||||
'
|
||||
rc=0
|
||||
for i in $files
|
||||
do
|
||||
|
|
36
mergetools/winmerge
Normal file
36
mergetools/winmerge
Normal file
|
@ -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 a new issue