ediff合并可以同时显示祖先,A,B和合并缓冲区吗?

Ada*_*ers 19 emacs diff merge kdiff3 emacs-ediff

我是一个顽固的emacs用户,但到目前为止一直用于kdiff3与祖先的三向合并,例如在表演时git mergerebase.我真的很喜欢kdiff3不仅可以同时显示正在合并的文本的所有四个版本的方式:

  • 共同的祖先(缓冲区A in kdiff3)
  • "我们的"又名"本地"(缓冲区B in kdiff3)
  • "他们的"又名"远程"(缓冲区C in kdiff3)
  • 合并结果或目标

但也可以通过颜色突出显示A,BC之间的差异.然而,与合并缓冲区的文本编辑kdiff3相比,毫不奇怪emacs,因为kdiff3它不是一个完整的文本编辑器.它也没有开箱即用的优秀magit包装.所以我想切换到使用ediff解决这一冲突时,特别是方案(我已经成功地使用ediff其他使用案例多年).

但是,尽管阅读了ediff手册EmacsWiki页面,并询问#emacsIRC,我找不到同时显示所有4个缓冲区的方法.默认情况下显示:

  • "我们的"又称"本地"(标记为缓冲区A)
  • "他们的"又名"远程"(标记为缓冲区B)
  • 合并结果或目标(标记为缓冲区C)

按下/切换显示合并结果缓冲区(C)的窗口,以便显示祖先缓冲区,但您无法同时看到祖先和合并结果.(此外,祖先缓冲区中的差异以单一颜色突出显示,但没有清楚地显示哪些位与其他两个可见缓冲区(AB)不同,尽管根据此线程,似乎不幸的是祖先差异细化还没有还没有实现.)

是否有一种简单的方法来配置ediff同时显示所有4个缓冲区?

Tin*_*ino 5

这已添加到主干版本中.现在默认情况下,3向合并显示四个缓冲区,即"本地"(缓冲区A),"远程"(缓冲区B),合并结果(缓冲区C)和祖先.您可以更改此默认设置自定义新选项'ediff-show-ancestor'.

键'/'现在绑定到一个新命令'ediff-toggle-show-ancestor':它切换是显示3(本地,远程和结果)还是4(本地,远程,结果,祖先)缓冲区.

这些更改将在Emacs 26.1发行版中可见.