help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ediff-merge ancestor refinement


From: Dave Abrahams
Subject: ediff-merge ancestor refinement
Date: Thu, 14 Jul 2011 16:09:08 -0400
User-agent: Gnus/5.110018 (No Gnus v0.18) Emacs/23.3 (darwin)

Hi,

When I'm doing an ediff-merge, it shows refinement regions of A
with-respect-to B.  But what I'm *really* interested in, when I have a
conflict, is to see the difference between each of the final buffers and
their ancestor.  For example, I had to resolve this merge conflict today:

<<<<<<< variant A
    if (ActiveBlocks.size() > AddedTo) {
      ArrayRef<unsigned> Add(&ActiveBlocks[AddedTo],
                             ActiveBlocks.size() - AddedTo);
      addThroughConstraints(Intf, Add);
>>>>>>> variant B
    if (ActiveBlocks.size() == AddedTo)
      break;
    addThroughConstraints(Cand.Intf,
                          ArrayRef<unsigned>(ActiveBlocks).slice(AddedTo));
####### Ancestor
    if (ActiveBlocks.size() == AddedTo)
      break;
    addThroughConstraints(Intf,
                          ArrayRef<unsigned>(ActiveBlocks).slice(AddedTo));
======= end

If you look really carefully, you can see that variant B added "Cand."
in the 3rd line.  But it was really hard for me to see that.  Once I did
see it, the merge was trivial.  Wouldn't it be possible to highlight
diffs in A and B with-respect-to the Ancestor buffer?

Hmm, I see we have a face for something like that:

,----
| Face: ediff-fine-diff-Ancestor
| 
| Documentation:
| Face for highlighting the refinement of the selected diff in the ancestor 
buffer.
| At present, this face is not used and no fine differences are computed for the
| ancestor buffer.
`----

Is this especially hard to code or something?

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]