2015-01-12 15 views

risposta

14

vimdiff2 è stato introdotto nel commit 0008669 (settembre 2010, per Git 1.7.4)

È like vimdiff, ma con diverse opzioni di unione (come commentato in commit b2a6b71, Git 1.8.2: "vimdiff e vimdiff2 differiscono solo per il loro comando di fusione ").

It (vimdiff2) forza una stampa a 2 vie, contro vimdiff che utilizzerà un 3-way merge se viene rilevata la base (antenato comune):

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" 
    ;; 

noti che commit 7c147b7 (aprile 2014, per Git 2.1.0 agosto 2014) in realtà introduce vimdiff3 così:

E 'simile a quello di default, se non che le altre finestre sono nascosti.
Ciò garantisce che i colori rimossi/aggiunti siano ancora visibili nella finestra di fusione principale, ma le altre finestre non sono visibili.

Particolarmente utile con merge.conflictstyle=diff3.

+0

Che cosa consiglieresti per risolvere i conflitti di unione? "Sfortunatamente Vim lotta un po 'con le differenze a tre, entrambe con l'evidenziazione delle differenze e con la mescolanza dei cambiamenti individuali tra le tre finestre." Fonte: http://vim.wikia.com/wiki/A_better_Vimdiff_Git_mergetool – nomadStack

+0

@nomadStack in effetti. Preferisco usare kdiff3. – VonC