On Mon, Mar 26, 2012 at 03:15:17PM -0500, John wrote:
> $ svn merge --record-only ^/myproject/trunk/subdir@2676 subdir
> 
> $ svn pg 'svn:mergeinfo' subdir
> subdir - /myproject/branches/W/subdir:1488-2675
> /myproject/branches/Y/subdir:5925-7118
> /myproject/trunk/subdir:1488-7532
> 
> $ svn pg 'svn:mergeinfo' subdir/A
> (At this point the merginfo on subdir/A has been elided.)

Great!

> I'm now seeing the desired elision behavior, but I do not fully understand
> why using "--record-only" changed the behavior so dramatically.
> Without the "--record-only" flag, nothing was modified.
> e.g.
> $ svn merge -q ^/myproject/trunk/subdir@2780 subdir
> $ svn diff
> [no output from svn diff]
> 
> Shouldn't the changes to "svn:mergeinfo" be the same,
> regardless of whether or not "--record-only" is used?

I think this happens because there are no operative revisions
for 'subdir' in the range being merged. As of the 1.7 release,
Subversion no longer creates mergeinfo changes for unaffected
subtrees during merges.
See 
http://subversion.apache.org/docs/release-notes/1.7.html#subtree-mergeinfo-recording

However, this behaviour wasn't implemented for record-only merges.
Record-only merges still update all subtree mergeinfo within the
merge target. I don't know why record-only merges behave differently.
Perhaps the new behaviour is too difficult to implement for record-only
merges, or maybe this difference exists on purpose.

Reply via email to