[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Implicit keep-alive after reintegrate merge

From: Stefan Sperling <stsp_at_elego.de>
Date: Mon, 30 Jan 2012 14:51:17 +0100

On Mon, Jan 30, 2012 at 02:23:46PM +0100, Stefan Sperling wrote:
> What we use during --reintegrate is (3.2 b).

And here I'm catching myself spreading misinformation again.

There is another tweak we use during reintegrate.
Consider the graph again (fixed version):

                 +-b_at_r2--+ b_at_r4--b@r5-b_at_r6 ----
       (branch) / ^ | (merge 2)
               / | (merge 1) v
         --- a_at_r1 ------a_at_r3-----------+- a_at_r7 ----

If we used:

  (3.2 b) svn co a_at_r6 wc; svn merge b_at_r4 b_at_r7 a
we'd miss b_at_r2 during the merge. It won't be applied to branch a.
But we want it in the changeset.

So what really happens is:

  (3.2 b) svn co a_at_r6 wc; svn merge a_at_r4 b_at_r6 a

Note that a is compared to b, rather than b against its former self.
This delta includes b_at_r2 because this change isn't yet on branch a.

I'll readily admit that my initial statement about reintegrate
taking no shortcuts may not be correct, depending on the definition
of "shortcut". However, this is all about driving diff3 in a way that
produces results without spurious conflicts, rather than a general
mistake in applying some CM theory merge model.
Received on 2012-01-30 14:51:55 CET

This is an archived mail posted to the Subversion Dev mailing list.