2012-10-01 35 views
6

默認情況下,如果你使用fugitive.vim上與混帳衝突文件緩衝區的:Gdiff,你會得到一個three way diff顯示HEAD,工作複印件(衝突標誌),以及merge顯示基地

我喜歡有git config merge.conflictstyle diff3集,這includes the base(最近共同在衝突標誌HEADmerge祖先。

不幸的是,即使diff3在fugitive.vim的conflictstyle你還是隻得到3個窗格(無基地)。

有誰知道如何使顯示它在另一個窗格?理想的有關工作副本。

This comment蒂姆教皇似乎提供了一些線索,但我無法弄清楚。

+2

你嘗試[三人行](http://sjl.bitbucket.org/threesome.vim/)? – romainl

回答

4

您可以通過以下步驟來做到:

  • :split - 做一個水平分割
  • :Gdiff - DIFF在頂部窗口
  • CTRL 瓦特 + Ĵ - 移動將焦點置於底部窗口
  • Gedit :1 - 將底部窗口加載祖先

Gedit :2載荷頭Gedit :3負載合併

0

還可以使用Git合併工具-t gvimdiff。它將在gvimdiff中打開4個窗口。它不是內置於逃犯中,但是你仍然可以使用vim來做你的3路合併。

4

我知道的最快的方法是這樣的命令,在衝突緩衝器發出:

:Gsdiff :1 | Gvdiff 

您必須輸入這些命令作爲一個單當您將它們作爲兩個單獨的命令輸入時,效果會有所不同。

結果看起來是這樣的:

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

括號內的東西是「修正」說明符fugitive.vim理解在這種情況下。有關更多信息,請參見:h fugitive-revision

+0

是否有可能使這個不同的順序?交換常用和工作副本會很有用。 – Holloway