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
Received on 2009-03-05 16:37:43 CET