Skip to content

Commit 730b5b4

Browse files
toofishestytso
authored andcommitted
[PATCH] git-mergetool: Allow gvimdiff to be used as a mergetool
Signed-off-by: Dan McGee <[email protected]> Acked-by: "Theodore Ts'o" <[email protected]>
1 parent e58db03 commit 730b5b4

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

Documentation/config.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ merge.summary::
531531
merge.tool::
532532
Controls which merge resolution program is used by
533533
gitlink:git-mergetool[l]. Valid values are: "kdiff3", "tkdiff",
534-
"meld", "xxdiff", "emerge", "vimdiff", and "opendiff"
534+
"meld", "xxdiff", "emerge", "vimdiff", "gvimdiff", and "opendiff".
535535

536536
merge.verbosity::
537537
Controls the amount of output shown by the recursive merge

Documentation/git-mergetool.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ OPTIONS
2525
-t or --tool=<tool>::
2626
Use the merge resolution program specified by <tool>.
2727
Valid merge tools are:
28-
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, and opendiff
28+
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, and opendiff
2929
+
3030
If a merge resolution program is not specified, 'git mergetool'
3131
will use the configuration variable merge.tool. If the

git-mergetool.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,12 @@ merge_file () {
215215
check_unchanged
216216
save_backup
217217
;;
218+
gvimdiff)
219+
touch "$BACKUP"
220+
gvimdiff -f -- "$LOCAL" "$path" "$REMOTE"
221+
check_unchanged
222+
save_backup
223+
;;
218224
xxdiff)
219225
touch "$BACKUP"
220226
if base_present ; then
@@ -293,7 +299,7 @@ done
293299
if test -z "$merge_tool"; then
294300
merge_tool=`git-config merge.tool`
295301
case "$merge_tool" in
296-
kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | "")
302+
kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | "")
297303
;; # happy
298304
*)
299305
echo >&2 "git config option merge.tool set to unknown tool: $merge_tool"
@@ -312,6 +318,8 @@ if test -z "$merge_tool" ; then
312318
merge_tool=xxdiff
313319
elif type meld >/dev/null 2>&1 && test -n "$DISPLAY"; then
314320
merge_tool=meld
321+
elif type gvimdiff >/dev/null 2>&1 && test -n "$DISPLAY"; then
322+
merge_tool=gvimdiff
315323
elif type opendiff >/dev/null 2>&1; then
316324
merge_tool=opendiff
317325
elif type emacs >/dev/null 2>&1; then
@@ -325,7 +333,7 @@ if test -z "$merge_tool" ; then
325333
fi
326334

327335
case "$merge_tool" in
328-
kdiff3|tkdiff|meld|xxdiff|vimdiff|opendiff)
336+
kdiff3|tkdiff|meld|xxdiff|vimdiff|gvimdiff|opendiff)
329337
if ! type "$merge_tool" > /dev/null 2>&1; then
330338
echo "The merge tool $merge_tool is not available"
331339
exit 1

0 commit comments

Comments
 (0)