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

Re: Reintegrate with vendor branches

From: Ulrich Eckhardt <eckhardt_at_satorlaser.com>
Date: Tue, 2 Feb 2010 16:00:14 +0100

On Tuesday 02 February 2010, Olivier Sannier wrote:
> tags
> branches
> feature1
> trunk
> libs
> libA
> libB
> project1
> vendors
> libA
> current
> libB
> current
[...]
> the feature1 branch was created as a copy of /trunk at revision 45 and
> changes from trunk were regularly merged into it which gives the
> following merge info on /branches/feature1:
> /trunk:45-99
>
> The last final merge from trunk being done in revision 100.
> Now I want to reintegrate the feature branch back into trunk but I get
> the an error message saying that it is unable to reintegrate because
> some revisions are missing on the branch:
>
> /branches/feature1/libs/libA is missing /trunk/libs/libA:45-99
> /branches/feature1/libs/libB is missing /trunk/libs/libB:45-99
>
> I don't understand why it complains as all changes are already in
> since they were merged before the feature branch was created.
> Adding the above two paths and revision numbers in the merge infos for
> libA and libB allows to reintegrate but I would prefer if this could
> be avoided.

When you create the branch, you have

  branches/
     feature1/
        libA/ mergeinfo:/vendors/libA/current:25,30

When you now merge from trunk, you will have

  branches/
     feature1/ mergeinfo:/trunk:45-99
        libA/ mergeinfo:/vendors/libA/current:25,30
                              /trunk:45-99

IOW, the '/trunk:45-99' will both be attached to the 'branches/feature1'
folder and additionally to the 'branches/feature1/libA' folder. If you now
commit only the former (or revert the latter), thinking that you didn't
change anything in the 'libA' folder, you simply mess up the merge
information.

Check if while merging you omitted changing the mergeinfo in the 'libA'
folder. If so, that's probably a human error. Adding the missing info
manually is the right way to go.

Actually, the fact that merging to X changes the mergeinfo in subdir Y that
wasn't touched is a common source of confusion. There are two ways out:
 1. Educate the users. They must understand that these separate mergeinfo
properties are actually necessary. Yes, a better design could perhaps fix
that, but that is not the status quo.
 2. Merge to the root of the project only. This avoids having subdirs with
differing mergeinfos. This is a bit difficult in your project, because it
contains the libs which are otherwise on the same "level", i.e. projects
themselves. What you should consider is not having copies of the libs in your
main project but references. The closest to the current state would be to use
svn:external to reference the libs. That way, the mergeinfo of both your
project and the external libs wouldn't be mixed but stay apart.

Uli

-- 
FAQ: http://subversion.apache.org/faq.html
Docs: http://svnbook.red-bean.com/
Sator Laser GmbH, Fangdieckstraße 75a, 22547 Hamburg, Deutschland
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
**************************************************************************************
Sator Laser GmbH, Fangdieckstraße 75a, 22547 Hamburg, Deutschland
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
**************************************************************************************
           Visit our website at <http://www.satorlaser.de/>
**************************************************************************************
Diese E-Mail einschließlich sämtlicher Anhänge ist nur für den Adressaten bestimmt und kann vertrauliche Informationen enthalten. Bitte benachrichtigen Sie den Absender umgehend, falls Sie nicht der beabsichtigte Empfänger sein sollten. Die E-Mail ist in diesem Fall zu löschen und darf weder gelesen, weitergeleitet, veröffentlicht oder anderweitig benutzt werden.
E-Mails können durch Dritte gelesen werden und Viren sowie nichtautorisierte Änderungen enthalten. Sator Laser GmbH ist für diese Folgen nicht verantwortlich.
**************************************************************************************
Received on 2010-02-02 16:00:55 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.