Can I file an issue for this?

Philip said the server makes (or used to make?) the same mistake
internally when processing mergeinfo - presumably in the guts of the
ra_get_mergeinfo2 API?

I assume the deletion (elision) of a mergeinfo prop would generate an
all-revs-unmerged diff output, but haven't tested that.

- Julian


On Thu, 2011-09-08 at 16:59 +0100, Julian Foad wrote:
> If Subversion creates subtree mergeinfo on a path that previously didn't
> have any, then "svn diff" incorrectly shows all the source revs in that
> mergeinfo as newly "merged".
> 
> In a Subversion trunk WC, using 1.7.0-rc2:
> 
> $ svn merge -c 1000000 ^/subversion/branches/1.6.x/INSTALL INSTALL
> --- Merging r1000000 into 'INSTALL':
> U    INSTALL
> --- Recording mergeinfo for merge of r1000000 into 'INSTALL':
>  G   INSTALL
> 
> [Note that r1000000 is a no-op on trunk, so in fact no content change
> was made despite the 'U' marker.]
> 
> $ svn diff INSTALL
> Index: INSTALL
> ===================================================================
> --- INSTALL   (revision 1166027)
> +++ INSTALL   (working copy)
> 
> Property changes on: INSTALL
> ___________________________________________________________________
> Added: svn:mergeinfo
>    Merged /subversion/branches/atomic-revprop/INSTALL:r965046-1000689
>    Merged /subversion/branches/diff-callbacks3/INSTALL:r870059-870761
>    Merged /subversion/branches/bdb-reverse-deltas/INSTALL:r872050-872529
>    Merged /subversion/branches/double-delete/INSTALL:r870511-872970
>    [...]
> 
> This is wrong.  The property certainly was added, but that does not mean
> all those revisions were merged.  The expected output is something like:
> 
> [...]
> Added: svn:mergeinfo
>    Merged /subversion/branches/1.6.x/INSTALL:r1000000
> 
> 
> The bug is that "svn diff" shows a mergeinfo diff assuming that the
> previous merginfo was an explicit empty set of mergeinfo, but it wasn't,
> it was inherited mergeinfo.
> 
> - Julian
> 
> 


Reply via email to