Skip to content

Commit 34e859d

Browse files
committed
Merge branch 'jn/mergetools-examdiff'
"git mergetools" learned to drive ExamDiff. * jn/mergetools-examdiff: mergetools: add support for ExamDiff mergetools: create mergetool_find_win32_cmd() helper function for winmerge
2 parents 7929674 + 35d62bb commit 34e859d

File tree

3 files changed

+44
-20
lines changed

3 files changed

+44
-20
lines changed

git-mergetool--lib.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,3 +372,28 @@ get_merge_tool () {
372372
fi
373373
echo "$merge_tool"
374374
}
375+
376+
mergetool_find_win32_cmd () {
377+
executable=$1
378+
sub_directory=$2
379+
380+
# Use $executable if it exists in $PATH
381+
if type -p "$executable" >/dev/null 2>&1
382+
then
383+
printf '%s' "$executable"
384+
return
385+
fi
386+
387+
# Look for executable in the typical locations
388+
for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' |
389+
cut -d '=' -f 2- | sort -u)
390+
do
391+
if test -n "$directory" && test -x "$directory/$sub_directory/$executable"
392+
then
393+
printf '%s' "$directory/$sub_directory/$executable"
394+
return
395+
fi
396+
done
397+
398+
printf '%s' "$executable"
399+
}

mergetools/examdiff

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
diff_cmd () {
2+
"$merge_tool_path" "$LOCAL" "$REMOTE" -nh
3+
}
4+
5+
merge_cmd () {
6+
touch "$BACKUP"
7+
if $base_present
8+
then
9+
"$merge_tool_path" -merge "$LOCAL" "$BASE" "$REMOTE" -o:"$MERGED" -nh
10+
else
11+
"$merge_tool_path" -merge "$LOCAL" "$REMOTE" -o:"$MERGED" -nh
12+
fi
13+
check_unchanged
14+
}
15+
16+
translate_merge_tool_path() {
17+
mergetool_find_win32_cmd "ExamDiff.com" "ExamDiff Pro"
18+
}

mergetools/winmerge

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,5 @@ merge_cmd () {
1313
}
1414

1515
translate_merge_tool_path() {
16-
# Use WinMergeU.exe if it exists in $PATH
17-
if type -p WinMergeU.exe >/dev/null 2>&1
18-
then
19-
printf WinMergeU.exe
20-
return
21-
fi
22-
23-
# Look for WinMergeU.exe in the typical locations
24-
winmerge_exe="WinMerge/WinMergeU.exe"
25-
for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' |
26-
cut -d '=' -f 2- | sort -u)
27-
do
28-
if test -n "$directory" && test -x "$directory/$winmerge_exe"
29-
then
30-
printf '%s' "$directory/$winmerge_exe"
31-
return
32-
fi
33-
done
34-
35-
printf WinMergeU.exe
16+
mergetool_find_win32_cmd "WinMergeU.exe" "WinMerge"
3617
}

0 commit comments

Comments
 (0)