subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Sperling <s...@elego.de>
Subject Re: SVN merge attempting to reintegrate on a merge to a branch
Date Mon, 16 Sep 2013 14:26:08 GMT
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);


Mime
View raw message