Note that there are some explanatory texts on larger screens.

plurals
  1. POCan ediff merge simultaneously show the ancestor, A, B, and merge buffers?
    primarykey
    data
    text
    <p>I'm a die-hard <code>emacs</code> user, but so far have always used <a href="http://kdiff3.sourceforge.net/" rel="noreferrer"><code>kdiff3</code></a> for 3-way merges with ancestor, e.g. when performing <code>git merge</code> or <code>rebase</code>. I really like the way that <code>kdiff3</code> can not only simultaneously display all four versions of the text being merged:</p> <ul> <li>the common ancestor (buffer <em>A</em> in <code>kdiff3</code>)</li> <li>"ours" a.k.a. "local" (buffer <em>B</em> in <code>kdiff3</code>)</li> <li>"theirs" a.k.a. "remote" (buffer <em>C</em> in <code>kdiff3</code>)</li> <li>the merge result or target</li> </ul> <p>but also makes the differences between <em>A</em>, <em>B</em>, and <em>C</em> clear via colour highlighting. However, <code>kdiff3</code> unsurprisingly sucks in comparison to <code>emacs</code> when it comes to text editing of the merge buffer, since <code>kdiff3</code> is not a full-blown text editor. It also doesn't integrate out of the box with the excellent <a href="http://philjackson.github.com/magit/" rel="noreferrer"><code>magit</code></a> package. So I'm trying to switch to using <a href="http://www.gnu.org/software/emacs/manual/ediff.html" rel="noreferrer"><code>ediff</code></a> when resolving conflicts in this <em>particular</em> scenario (I have been successfully using <code>ediff</code> for <em>other</em> use cases for many years).</p> <p>However, despite reading the <a href="http://www.gnu.org/software/emacs/manual/ediff.html" rel="noreferrer"><code>ediff</code> manual</a> and <a href="http://emacswiki.org/emacs/EdiffMode" rel="noreferrer">EmacsWiki page</a>, and asking on <code>#emacs</code> IRC, I can't find a way to simultaneously display all 4 buffers. By default it shows:</p> <ul> <li>"ours" a.k.a. "local" (labelled buffer <em>A</em>)</li> <li>"theirs" a.k.a. "remote" (labelled buffer <em>B</em>)</li> <li>the merge result or target (labelled buffer <em>C</em>)</li> </ul> <p>Pressing <code>/</code> switches the window displaying the merge result buffer (<em>C</em>) so that it displays the ancestor buffer, but you can't see the ancestor and the merge result simultaneously. (Also, the diff in the ancestor buffer is highlighted in a single colour which doesn't clearly show which bits differ from the other two visible buffers (<em>A</em> and <em>B</em>), although according to <a href="http://gnu.emacs.help.narkive.com/djAhFzov/ediff-merge-ancestor-refinement" rel="noreferrer">this thread</a>, it seems that unfortunately ancestor diff refinement hasn't been implemented yet.)</p> <p>Is there an easy way to configure <code>ediff</code> to simultaneously display all 4 buffers?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload