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

Re: RFC: Issue 2883 No-op merge (without skip) should not change mergeinfo

From: Mark Phippard <markphip_at_gmail.com>
Date: 2007-08-23 01:15:08 CEST

On 8/22/07, Paul Burba <pburba@collab.net> wrote:
> I'd appreciate anyone's thoughts on issue 2883
> http://subversion.tigris.org/issues/show_bug.cgi?id=2883
>
> "If merge does not do anything (there are no changes in merge source),
> the svn:mergeinfo property should not be modified."
>
> The expected behavior if only the merge target has mergeinfo is clear:
> if nothing was changed by the merge, then don't update the target's
> mergeinfo.
>
> Also, if the target and some of its children both have mergeinfo but
> again nothing was changed by the merge, don't update the target's or the
> subtrees' mergeinfo. But what if, in this second case, a path within
> one of the subtrees was modified. Should the merge target and the
> subtree have thier mergeinfo updated, the subtree and it's ancestors
> with mergeinfo, or only the subtree?
>
> e.g.
>
> Given a greek tree with the following changes (this is from
> merge_tests.py:mergeinfo_inheritance):
>
> r2 - copy A to A_COPY
> r3 - text mod to A/D/H/psi
> r4 - text mod to A/D/G/rho
> r5 - text mod to A/B/E/beta
> r6 - text mod to A/D/H/omega
> r7 - merge r4 from A into A_COPY/D
> merge r5 from A into A_COPY/B
> merge r3 from A into A_COPY
>
> This gives us the following mergeinfo:
>
> >svn pl -vR merge_tests-1
> Properties on 'merge_tests-1\A_COPY':
> svn:mergeinfo : /A:1
> Properties on 'merge_tests-1\A_COPY\B':
> svn:mergeinfo : /A/B:1,5
> Properties on 'merge_tests-1\A_COPY\D':
> svn:mergeinfo : /A/D:1,4
>
> Currently trunk behaves this way if we perform a merge that affects only
> a subtree:
>
> >svn merge %URL%/A merge_tests-1\A_COPY -c3
> --- Merging r3:
> --- Merging r3:
> U merge_tests-1\A_COPY\D\H\psi
> --- Merging r3:
>
> As you can see, all the subtrees with mergeinfo get r3 added, even
> though only the subtree rooted at A_COPY/D was affected.
>
> >svn st merge_tests-1
> M merge_tests-1\A_COPY
> M merge_tests-1\A_COPY\B
> M merge_tests-1\A_COPY\D
> M merge_tests-1\A_COPY\D\H\psi
>
> >svn pl -vR merge_tests-1
> Properties on 'merge_tests-1\A_COPY':
> svn:mergeinfo : /A:1,3
> Properties on 'merge_tests-1\A_COPY\B':
> svn:mergeinfo : /A/B:1,3,5
> Properties on 'merge_tests-1\A_COPY\D':
> svn:mergeinfo : /A/D:1,3-4
>
> In fixing issue 2883, should we keep the current behavior or do one of
> the following?

We definitely want the current behavior. Perhaps if that last merge
had been --depth=files then we would not want it, but otherwise we do.
 Revision 3 was merged into the entire tree, whether it needed to
update those parts or not. For auditing reasons if nothing else, it
needs to be recorded everywhere (in your example).

-- 
Thanks
Mark Phippard
http://markphip.blogspot.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Aug 23 01:12:39 2007

This is an archived mail posted to the Subversion Dev mailing list.