subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim van Halteren <t.van.halte...@inforay.nl>
Subject Re: SVN 1.8 merge (branch reuse) seems broken when having local mergeinfo
Date Thu, 13 Mar 2014 22:16:30 GMT
Thanks for your response.

Being at home right now I tried your script on OS/X which has SVN 1.7.10 on
it and I noticed something interesting. Prior to 1.8 we needed to do a
merge with the --record-only option when we wanted to re-use the branch
(keep alive dance). So I first modified the last script line that caused
the error on SVN 1.8: "svn merge ^/trunk wc" to include the --record-only
option. And merge info on BOTH files was changed. This was the behaviour I
expected and branch re-use was possible.

But I also changed the script back so that it didn't include the
--record-only option like we now should be able to use on SVN 1.8. And the
interesting thing is that now SVN 1.7 also doesn't change the mergeinfo on
file 2.

I would expect the --record-only option to only influence the modification
of the files but don't effect the changes to the mergeinfo thus not
expecting a difference in which mergeinfo was changed.

So if my reasoning isn't flawed it could mean the problem was also in
versions prior to 1.8 but wasn't a problem back then because we always had
to use --record-only when re-using a branch.

By the way I also removed --compatible-version 1.8 because I have 1.7.10 on
OS/X

Thx, Tim




On Thu, Mar 13, 2014 at 9:29 PM, Philip Martin
<philip.martin@wandisco.com>wrote:

> Tim van Halteren <t.van.halteren@inforay.nl> writes:
>
> > No replies? Is this a bug or user error? Do I need to file a bug?
> > Could I have done something differently  to increase the chance of a
> response?
>
> I can reproduce it with trunk.  This is my Unix version of your script:
>
> #!/bin/sh
>
> rm -rf repo wc
> svnadmin create repo --compatible-version 1.8
> url=file://`pwd`/repo
> svn mkdir -mm $url/trunk
> svn co $url/trunk wc
> echo t >> wc/f1
> echo t >> wc/f2
> svn add wc/f?
> svn ci -mm wc
> svn cp -mm $url/trunk ^/fb1
> svn sw ^/fb1 wc
> echo fb1 >> wc/f1
> echo fb1 >> wc/f2
> svn ci -mm wc
> svn sw ^/trunk wc
> svn merge ^/fb1/f1 wc/f1
> svn merge ^/fb1/f2 wc/f2
> svn ci -mm wc
> svn rm -mm $url/fb1
> svn cp -mm $url/trunk ^/fb2
> svn sw ^/trunk wc
> echo t >> wc/f1
> svn ci -mm wc
> svn sw ^/fb2 wc
> svn merge ^/trunk wc    # problem merge?
> svn ci -mm wc
> svn sw ^/trunk wc
> svn merge ^/fb2 wc
> svn ci -mm wc
> svn sw ^/fb2 wc
>
> The command:
>
>   $ svn merge ^/trunk wc
>
> gives the error:
>
>   svn: E195016: Reintegrate can only be used if revisions 7 through 10
> were previously merged from file:///home/pm/sw/subversion/obj/repo/fb2 to
> the reintegrate source, but this is not the case:
>     trunk/f1
>       Missing ranges: /trunk/f1:8
>
> Look at the earlier merge from trunk to fb2:
>
>   $ svn merge ^/trunk wc
>   --- Merging r7 through r8 into 'wc':
>   U    wc/f1
>   --- Recording mergeinfo for merge of r7 through r8 into 'wc':
>    U   wc
>   --- Recording mergeinfo for merge of r7 through r8 into 'wc/f1':
>    U   wc/f1
>
> That merge doesn't change wc/f2 and so the subtree mergeinfo there is
> not modified.  As I recall that was a deliberate change several years
> ago but I'm not sure exactly how it is supposed to interact with the
> rest of the merge code.
>
> --
> Philip Martin | Subversion Committer
> WANdisco // *Non-Stop Data*
>

Mime
View raw message