Re: Merge problem: "path not found" error, SVN 1.5.5
From: Marc Strapetz <marc.strapetz_at_syntevo.com>
Date: Thu, 05 Mar 2009 18:36:54 +0100
>> Now, when checking out A at r32 and trying to perform following merge:
Hello Paul,
Sorry for the confusion, I've "translated" the example from a real-world
svn merge http://host/B/dir2/file@33 -r30:33 ./dir/file
So the revision range is 31-33 which *might* contain changes to
I think in general this problem isn't very likely, because when merging
-- Best regards, Marc Strapetz _____________ syntevo GmbH www.syntevo.com Paul Burba wrote: > On Wed, Mar 4, 2009 at 7:08 AM, Marc Strapetz <marc.strapetz_at_syntevo.com> wrote: >> With SVN 1.5.5, for certain conditions merge code accesses "future" >> target revisions and hence can fail with "path not found" error. Example >> (maybe it's not minimal, but it's reproducible in this way for us): >> >> r29: A copied to B >> r30: B/dir/file copied to B/dir2/file >> B/dir/file removed >> r31: ... non-relevant changes >> r32: ... non-relevant changes >> r33: Merged changes from B back to A, >> especially A/dir/file gets removed. >> r34: B removed >> >> Now, when checking out A at r32 and trying to perform following merge: >> >> svn merge http://host/B/dir2/file@33 -r33:29 ./dir/file >> >> it fails with: >> >> svn: File not found: revision 33, path '/A/dir/file' > > Hi Marc, > > What do you expect this merge to do (i.e. what is the use case)? You > are trying to reverse merge the move of 'B/dir/file' to 'B/dir2/file' > *directly* into 'A/dir/file'. So effectively you are trying to > reverse merge the addition of a path (r30) directly onto a target > path, which AFAICT has never been supported in Subversion. > > I agree the error is not very helpful and probably shouldn't occur at > all. In 1.4.6 this is simply a no-op, is that what you were > expecting? > > Paul > >> So, although I'm at r32 in my local working copy, svn tries to access >> r33 of my (in repository already removed) working copy file and fails. I >> think r33 shouldn't be accessed in this case and so far we figured out >> that get_full_mergeinfo() in libsvn_client/merge.c:2424 is responsible >> for that problem: >> >> /* Our underlying APIs can't yet handle the case where the peg >> revision isn't the youngest of the three revisions. So we'll >> just verify that the source in the peg revision is related to the >> the source in the youngest requested revision (which is all the >> underlying APIs would do in this case right now anyway). */ >> if (target_rev < start) >> { >> ... >> SVN_ERR(svn_client__repos_locations(&start_url, &start_revision, >> NULL, NULL, ra_session, url, >> &pegrev, &requested, >> &unspec, ctx, pool)); >> ... >> } >> >> -- >> Best regards, >> Marc Strapetz >> _____________ >> syntevo GmbH >> www.syntevo.com >> >> ------------------------------------------------------ >> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1266499 >> > > ------------------------------------------------------ > http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1272583 > > ------------------------------------------------------ http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1273019Received on 2009-03-05 18:37:12 CET |
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.