I read article in detail: http://www.collab.net/community/subversion/articles/merge-info.html and now I think I know why the X/A mergeinfo has asterisk (/trunk/A:199-202*). Folder X/A has additional sub-folders, other than 1,2,3 and those sub-folders, for example X/A/4, are not available in the sparse working copy. OK, this makes sense.
I tried a new test. I used a fresh copy of trunk as branches/Z and just used the command-line. I followed the steps outlined in the article section "Mergeinfo Inheritance and Non-Inheritable Ranges". The results are the same as before. As described in my first post, the reintegrate simply will not work . ________________________________ From: Manny DaSilva <manny...@yahoo.com> To: Johan Corveleyn <jcor...@gmail.com> Cc: users@subversion.apache.org Sent: Fri, March 12, 2010 10:39:22 AM Subject: Re: unable to reintegrate branch First, thank you for the quick reply. Second, I want to apologize for having some missing info in my post. In my email I have two steps labeled #3. This is the merge from trunk into sparse working-copy of branch X. Let's call this step #3b. I also failed to mention that before the merge at step #3b, a file in A/1 folder was changed in both working copies of trunk and branch X and then committed. This provides something to merge sync/reintegrate. The branch X root mergeinfo has no asterisk: /trunk:199-202 The two sub-folders X/A and X/B are confirmed, they both have the asterisk: /trunk/A:199-202* /trunk/B:199-202* And the sub-folders X/A/1,2,3 have no asterisk: /trunk/A/1:199-202 Folder X/B does not have sub-folders because the working copy is sparse from a shallow checkout. TortoiseSVN was used to checkout branch X with depth of immediates which produced X/A and X/B in the working-copy. Then X/A/1,2,3 were added with update set-depth infinity. Actually, using TortoiseSVN "Update item to revision" from the Repo-Browser. I'm going to try a test by only using the command-line but I don't think it will make any difference. I have also found this comment: http://eclipse.open.collab.net/ds/viewMessage.do?dsForumId=62&viewType=browseAll&dsMessageId=158923 by bergtwvd (Tom van den Berg) on 2008-11-10 11:12:39 PST: "You can merge into a partial depth working copy, although it is generally not a good idea. That said, the --reintegrate merge option will not allow you to do this." I'm starting to think that "You can merge into a partial depth working copy, although it is generally not a good idea" really means that it does not work. My guess is that the problem is being caused by the sparse working copy and some interaction with the merge tracking. This is because I have tried the same use case with a fully recursive working copy of branch X for the merge at step #3b and the use case works just fine. Our directory structure has 20,000+ files and we need to work with sparse working-copies. ________________________________ From: Johan Corveleyn <jcor...@gmail.com> To: Manny DaSilva <manny...@yahoo.com> Cc: users@subversion.apache.org Sent: Fri, March 12, 2010 5:26:51 AM Subject: Re: unable to reintegrate branch On Fri, Mar 12, 2010 at 12:19 AM, Manny DaSilva <manny...@yahoo.com> wrote: > Server at v1.6.9 > CollabNet command-line client at v1.6.9 > TortoiseSVN client at v1.6.7 > 1. Trunk copied to branches/X > 2. Shallow checkout of branches/X creates sparse working-copy: > X/A > X/B > 3. update --set-depth infinity X/A downloads additional folders from X/A > tree: > X/A/1 > X/A/2 > X/A/3 > 3. merge --depth infinity <ReposURL>/trunk > The merge works correctly but causes svn:mergeinfo properties like > the following. Note the asterisked rev number in svn:mergeinfo: > /trunk/A:199-202* > /trunk/B:199-202* I'm guessing this is mergeinfo on the root of your branch (X). The mergeinfo with an asterisk is a "non-inheritable merge range". It means that, at the root of your branch, svn has noted that revs 199-202 are only merged up to A and B respectively, and not deeper (so anything deeper cannot derive/inherit this mergeinfo; anything deeper has not yet had those revisions merged from trunk). This seems a little strange to me, because A should be present in your working copy with depth infinity, so I would expect: /trunk/A:199-202 /trunk/B:199-202* Are you sure there are asterisks for both A and B? For some more understanding of merginfo, including some explanation of the asterisk etc., see: http://www.collab.net/community/subversion/articles/merge-info.html It's a very long article, so it takes quite some effort to go through it all, but it can help a lot if you're trying to wrap your head around it ... (if you already know some basic stuff of mergeinfo you may want to skip ahead to the section "Mergeinfo Inheritance and Non-Inheritable Ranges", where the asterisk is explained). > 4. Using E:\X41\trunk fully recursive working copy of trunk, run: > merge --reintegrate <ReposURL>/branches/X > Get this error: > Command: Reintegrate merge <ReposURL>/branches/X into E:\X41\trunk > Error: Reintegrate can only be used if revisions 199 through 204 were > previously > Error: merged from <ReposURL>/trunk to the reintegrate source, but this is > Error: not the case: > Error: branches/X/A > Error: Missing ranges: /trunk/A:199-202 > Error: branches/X/B > Error: Missing ranges: /trunk/B:199-202 > > Any ideas as to what may be causing these errors? > I'm not sure what's the cause of these errors (at least I would only expect problems for X/B). Maybe it's not possible to reintegrate a sparsely merged branch? Maybe someone else has experience with this? Johan