2015-01-12 16 views

Antwort

14

vimdiff2 wurde in commit 0008669 (September 2010, für git 1.7.4) eingeführt

Es ist like vimdiff, aber mit unterschiedlichen Einarbeitungsoptionen (wie in commit b2a6b71 kommentierte git 1.8.2: „vimdiff und vimdiff2 unterscheiden sich nur durch ihr Zusammenführungsbefehl ").

It (vimdiff2) zwingt, eine 2-Wege-merge, im Vergleich zu vimdiff die eine 3-way merge, wenn die Basis (gemeinsamen Vorfahren) erkannt wird verwenden:

gvimdiff|vimdiff) 
    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 
    ;; 
gvimdiff2|vimdiff2) 
    "$merge_tool_path" -f -d -c 'wincmd l' \ 
     "$LOCAL" "$MERGED" "$REMOTE" 
    ;; 

anzumerken, dass commit 7c147b7 (April 2014 für Git 2.1.0 August 2014) führt auch vimdiff3 als auch:

Es ist ähnlich wie die Standardeinstellung, außer dass die anderen Fenster ausgeblendet sind.
Dies stellt sicher, dass entfernte/hinzugefügte Farben noch im Hauptfenster sichtbar sind, aber die anderen Fenster nicht sichtbar sind.

Besonders nützlich mit merge.conflictstyle=diff3.

+0

Was würden Sie zur Lösung von Zusammenführungskonflikten empfehlen? "Leider hat Vim ein wenig Probleme mit Drei-Wege-Diffs, sowohl mit Hervorhebung der Unterschiede als auch mit dem Mischen einzelner Änderungen zwischen den drei Fenstern." Quelle: http://vim.wikia.com/wiki/A_better_Vimdiff_Git_mergetool – nomadStack

+0

@nomadStack tatsächlich. Ich bevorzuge kdiff3. – VonC

Verwandte Themen