Merge branch 'dm/mergetool-vimdiff'

* dm/mergetool-vimdiff:
  mergetool-lib: make the three-way diff the default for vim/gvim
  mergetool-lib: add a three-way diff view for vim/gvim
  mergetool-lib: combine vimdiff and gvimdiff run blocks
This commit is contained in:
Junio C Hamano 2010-10-26 21:47:11 -07:00
commit 0141215c9b

View File

@ -10,10 +10,10 @@ merge_mode() {
translate_merge_tool_path () {
case "$1" in
vimdiff)
vimdiff|vimdiff2)
echo vim
;;
gvimdiff)
gvimdiff|gvimdiff2)
echo gvim
;;
emerge)
@ -47,7 +47,8 @@ check_unchanged () {
valid_tool () {
case "$1" in
kdiff3 | tkdiff | xxdiff | meld | opendiff | \
emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis | p4merge)
vimdiff | gvimdiff | vimdiff2 | gvimdiff2 | \
emerge | ecmerge | diffuse | araxis | p4merge)
;; # happy
tortoisemerge)
if ! merge_mode; then
@ -169,25 +170,30 @@ run_merge_tool () {
"$merge_tool_path" "$LOCAL" "$REMOTE" | cat
fi
;;
vimdiff)
vimdiff|gvimdiff)
if merge_mode; then
touch "$BACKUP"
"$merge_tool_path" -d -c "wincmd l" \
"$LOCAL" "$MERGED" "$REMOTE"
if $base_present; then
"$merge_tool_path" -f -d -c "wincmd J" \
"$MERGED" "$LOCAL" "$BASE" "$REMOTE"
else
"$merge_tool_path" -f -d -c "wincmd l" \
"$LOCAL" "$MERGED" "$REMOTE"
fi
check_unchanged
else
"$merge_tool_path" -d -c "wincmd l" \
"$merge_tool_path" -f -d -c "wincmd l" \
"$LOCAL" "$REMOTE"
fi
;;
gvimdiff)
vimdiff2|gvimdiff2)
if merge_mode; then
touch "$BACKUP"
"$merge_tool_path" -d -c "wincmd l" -f \
"$merge_tool_path" -f -d -c "wincmd l" \
"$LOCAL" "$MERGED" "$REMOTE"
check_unchanged
else
"$merge_tool_path" -d -c "wincmd l" -f \
"$merge_tool_path" -f -d -c "wincmd l" \
"$LOCAL" "$REMOTE"
fi
;;