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

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

Re: ediff-merge ancestor refinement


From: Stefan Monnier
Subject: Re: ediff-merge ancestor refinement
Date: Wed, 28 Mar 2012 19:19:00 -0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

> 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 change the above markers to the standard diff3 markers, you can
use smerge-mode (a minor mode, much more lightweight than ediff3) which
lets you highlight refined changed between any two of the 3 chunks.


        Stefan


reply via email to

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