mergetool-lib: make the three-way diff the default for vim/gvim
The original vimdiff/gvimdiff configuration is now available by using 'vimdiff2' or 'gvimdiff2' as the preferred merge tool. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Dan McGee committed
Sep 27, 2010 at 10:19 UTC
000866909a5d9233c89d8fcc33a8125cc84f24d6
1 file changed
+15
-3
git-mergetool--lib.sh
+15
-3
@@ -10,10 +10,10 @@ merge_mode() {
10
11
translate_merge_tool_path () {
12
case "$1" in
13
- vimdiff)
13
+ vimdiff|vimdiff2)
14
echo vim
15
;;
16
- gvimdiff)
16
+ gvimdiff|gvimdiff2)
17
echo gvim
18
;;
19
emerge)
@@ -47,7 +47,8 @@ check_unchanged () {
47
valid_tool () {
48
case "$1" in
49
kdiff3 | tkdiff | xxdiff | meld | opendiff | \
50
- emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis | p4merge)
50
+ vimdiff | gvimdiff | vimdiff2 | gvimdiff2 | \
51
+ emerge | ecmerge | diffuse | araxis | p4merge)
52
;; # happy
53
tortoisemerge)
54
if ! merge_mode; then
@@ -185,6 +186,17 @@ run_merge_tool () {
186
"$LOCAL" "$REMOTE"
187
fi
188
;;
189
+ vimdiff2|gvimdiff2)
190
+ if merge_mode; then
191
+ touch "$BACKUP"
192
+ "$merge_tool_path" -f -d -c "wincmd l" \
193
+ "$LOCAL" "$MERGED" "$REMOTE"
194
+ check_unchanged
195
+ else
196
+ "$merge_tool_path" -f -d -c "wincmd l" \
197
+ "$LOCAL" "$REMOTE"
198
+ fi
199
+ ;;
200
xxdiff)
201
if merge_mode; then
202
touch "$BACKUP"