2012-10-01 12 views
6

Domyślnie jeśli używasz fugitive.vim „s :Gdiff na bufor pliku, który jest w konflikcie z git, dostaniesz three way diff pokazując HEAD, kopię roboczą (z markerów konfliktowych), a merge.Pokaż baza w fugitive.vim konfliktów diff

lubię mieć git config merge.conflictstyle diff3 zestaw, który includes the base (ostatni wspólny przodek z HEAD i merge w markerów konfliktowych.

Niestety nawet z diff3 jako conflictstyle w fugitive.vim jeszcze dostać tylko 3 okienka (bez baza).

Czy ktoś wie, jak sprawić, by pokazać je w innym okienku? Najlepiej o kopii roboczej.

This comment Tim Pope wydaje się zapewniać pewien trop, ale Nie mogę tego dokładnie rozgryźć.

+2

Czy próbowałeś [Threesome] (http://sjl.bitbucket.org/threesome.vim/)? – romainl

Odpowiedz

4

Można to zrobić z następujących kroków:

  • :split - Czy poziomy podział
  • :Gdiff - Diff w górnym oknie
  • ctrlw + j - Move fokus na dolne okno
  • Gedit :1 - Załaduj przodka w dolnym oknie

Gedit :2 ładunki głowy i Gedit :3 ładunki scalanie

0

Możesz użyć git mergetool -t gvimdiff. Otworzy 4 okna w gvimdiff. Nie jest wbudowany w zbieg, ale nadal możesz używać vima do łączenia się w 3 kierunkach.

4

Najszybszym sposobem wiem jest to polecenie, wydane w buforze skonfliktowanego:

:Gsdiff :1 | Gvdiff 

Należy wpisać te polecenia jako jedno- liniowej, efekt jest inny, gdy wprowadzisz je jako dwa osobne polecenia.

Wynik wygląda tak:

+---------------------------------------+ 
|   common ancestor (:1)   | 
+-----------+--------------+------------+ 
|   |    |   | 
| HEAD (:2) | working copy | merge (:3) | 
|   |    |   | 
+-----------+--------------+------------+ 

Rzeczy wewnątrz nawiasów są Specyfikatory rewizję że fugitive.vim rozumie się w tym kontekście. Aby uzyskać więcej informacji, patrz :h fugitive-revision.

+0

Czy można to zmienić? Przydatne byłoby zamienienie zwykłych i roboczych kopii. – Holloway