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

Re: SVN merge attempting to reintegrate on a merge to a branch

From: Stefan Sperling <stsp_at_elego.de>
Date: Mon, 16 Sep 2013 16:26:08 +0200

On Mon, Sep 16, 2013 at 11:51:30AM +0000, Goor, Stefan wrote:
> Sorry for that, I should have spotted the missing slash! The local merge
> gave the same result:
>
> C:\Users\Administrator\my_project_branch>C:\csvn\bin\svn merge
> "file:///C:/csvn/data/r
> epositories/REPO/trunk/my_project" .
> svn: E195016: Reintegrate can only be used if revisions 4401 through 4587
> were p
> reviously merged from
> file:///C:/csvn/data/repositories/REPO/branches/my_project/f
> eatures/my_project_branch to the reintegrate source, but this is not the
> case:
> trunk/my_project
> Missing ranges: /trunk/my_projec:4485
> Missing ranges:
> /trunk/my_project:4407-4408,4431,4442-4444,4485,4524,4532-453
> 3
>
> Please let me know if I can post any further information to help identify
> the issue.

Thanks!

Bert Huijben pointed out to me a way to reproduce this problem
with the svn.apache.org repository. Using his reproduction recipe
I could spot the problem and fix it: http://svn.apache.org/r1523666

This wasn't a cosmetic issue, but caused actual mis-detection of
missing ranges. Whether or not that patch fixes your merge problem
remains to be seen -- it all depends on your merge history. However,
with the above fix (patch below) the obvious corrupted path issue
should disappear.

Can you try this patch?

Index: subversion/libsvn_client/merge.c
===================================================================
--- subversion/libsvn_client/merge.c (revision 1523568)
+++ subversion/libsvn_client/merge.c (working copy)
@@ -10715,7 +10715,7 @@ log_find_operative_revs(void *baton,
 
           suffix = svn_relpath_skip_ancestor(subtree_missing_this_rev,
                                              source_rel_path);
- if (suffix)
+ if (suffix && suffix[0] != '\0')
             {
               missing_path = apr_pstrmemdup(pool, path,
                                             strlen(path) - strlen(suffix) - 1);
Received on 2013-09-16 16:26:51 CEST

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.