I mean 3 times doing a
svn merge ^/trunk/project
on the feature branch and then commit.
So each time commiting some modifications coming from the trunk,
everything went well.
I checked sparse dir doc, I understand it. I've run the same reintegrate
command on freshly checked out working copy, same result except that it
was with a Ubuntu 1.6.5 client and the error was more explicit.
We are not working with shallow working copies.
A possible explanation I foresee, is someone with a 1.5 client doing the
merge from the Release branch to the trunk, causing problem when merging
trunk to Feature Branch afterward.
Thanks for your deep explanation of the shallow copies ;)
Stefan Sperling wrote:
> On Thu, May 06, 2010 at 06:18:07PM +0800, Jean Seurin wrote:
>> I just persuaded my organisation to give a try to Feature Branch.
>> After 3 merges only,
> What 3 merges precisely?
>> when I attempt to --dry-run a merge
>> --reintegrate I've got the following error:
>> svn merge --reintegrate ^/branches/project-dev --dry-run
>> With an OSX 1.6.11 client :
>> svn: Cannot reintegrate into a working copy not entirely at infinite depth
> That error is important.
> Why is your working copy not entirely at infinite depth?
> If you don't understand this error message, please read:
>> with a Ubuntu 1.6.5 client on fresh check out:
>> svn: Reintegrate can only be used if revisions 6336 through 6393
>> were previously merged from svn://company/company/trunk/project to
>> the reintegrate source, but this is not the case:
>> Missing ranges: /trunk/project/src/test/java/com/company/client/project/adherent/persistence/AdherentDaoHibernateTest.java:6336-6389
>> Missing ranges: /trunk/project/src/test/java/com/company/client/project/codeobjet/persistence/CodeObjetDaoHibernateTest.java:6336-6389
>> Missing ranges: /trunk/project/src/test/java/com/company/client/project/courrier/persistence/CourrierDaoHibernateTest.java:6336-6389
>> Missing ranges: /trunk/project/src/test/java/com/company/client/project/dossierstagiaire/persistence/DossierStagiaireDaoHibernateTest.java:6336-6389
>> Missing ranges:
>> I really don't undertsand what has happened. The merge went well.
> Well, let's look at what the error is saying:
> So there are files in trunk/project from which you have not yet merged
> changes into your branch. You have however merged changes to other
> files from revisions 6336 through 6393 to your branch from trunk.
> That is what's causing the error. r6336 to 6393 have not been completely
> merged from trunk to the branch. The changes listed in the error message
> are the changes which have not been merged into the branch yet.
> This can easily happen if people do merges into shallow working copies,
> with depth != infinity. Maybe your working copy on the Mac is shallow,
> and you have done incomplete merges from trunk to the branch with it,
> and as a result those merges weren't complete, causing reintegrate to
> To illustrate, let's assume I make a commit to trunk in r50,
> which affects the following files:
> Now I merge r50 from trunk to my branch, but the merge omits the change
> to bar/baz.c because my branch working copy is shallow.
> The mergeinfo created by this merge looks like this:
> /branch (svn:mergeinfo = trunk:r50*)
> /branch/foo.c (svn:mergeinfo = trunk:r50)
> The * means "only applies to this folder, not its children".
> This happens because svn realises that I did not merge changes r50
> made inside of /trunk/bar/. Maybe I still want to merge those later.
> Because the mergeinfo at /branch is not inheritable, svn also made
> a note at /branch/foo.c saying "this file already has changes to r50".
> This will prevent changes made in r50 to foo.c from being merged to
> the branch again.
> Trying to reintegrate the branch from this state without first merging
> everything r50 did will result in the error you are getting.
> You want mergeinfo like this:
> /branch (svn:mergeinfo = trunk:r50)
> Which says "This entire branch has all changes made to trunk in r50".
> BTW, a 1.6 client will flag a tree conflict in this case,
> saying "local delete, incoming edit upon merge", because in my WC
> it looks as if I deleted bar/ (though it should probably say "local
> missing because of shallow working copy, incoming edit").
> You probably did the merge with a 1.5 client since you didn't get a conflict?
>> I've tried to modify the svn:mergeinfo properties to add the missing
>> info but to now avail. I think I shouldn't have to that.
> No, you shouldn't. My guess is that (possibly unconscious) use of shallow
> working copies is responsible for this error.
> Shallow working copies have their use cases, but merging into them
> isn't one of them (unless you know about the consequences and know
> how to deal with them).
Received on 2010-05-06 13:48:01 CEST