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

Re: SVN 1.8 merge (branch reuse) seems broken when having local mergeinfo

From: Tim van Halteren <t.van.halteren_at_inforay.nl>
Date: Thu, 13 Mar 2014 23:16:30 +0100

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_at_wandisco.com>wrote:

> Tim van Halteren <t.van.halteren_at_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*
>
Received on 2014-03-13 23:17:03 CET

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.