On Fri, Feb 03, 2012 at 04:45:17PM +0100, André Hänsel wrote: > I would think those two mergeinfos were equivalent, so mergeinfo elision > should remove the mergeinfo on "live/templates/c-physignathus". > > # svn propget svn:mergeinfo live > /cm_dev:99-344 > /dev:367-578,580 > > # svn propget svn:mergeinfo live/templates/c-physignathus > /cm_dev/templates/c-physignathus:99-344 > /cm_dev/templates/p2011:99-344 > /dev/templates/c-physignathus:367-578,580 > > But it doesn't. What's the reason? > > TortoiseSVN 1.7.4, Subversion 1.7.2 >
Mergeinfo elision is quite simplistic as of now. There are ways to improve it but as far as I know nobody is working on improvements at the moment. Below, I am quoting Paul Burba in http://svn.haxx.se/dev/archive-2011-09/0248.shtml Paul explains how mergeinfo elision works today and how it could be improved. [begin quote] Given: A path P and some path-wise child of P called C: Assume both P and C have explicit mergeinfo. Assume there is no intermediate patch between P and C with explicit mergeinfo. Assume P and C are at the same revision as are any intermediate paths between them. Question: Can the mergeinfo on C elide to P? Looking at the intersection of the P and C's mergeinfo we have: A) Common mergeinfo (that differs only by the path-wise difference between P and C) - This can elide. B) Mergeinfo exclusive to P - If *all* of this describes merges that are inoperative on C, then this can elide. C) Mergeinfo exclusive to C - If all of this describes merges that are operative only on C and/or on subtrees which are not part of P, then this can elide. If elision occurs in *all* three cases then the mergeinfo on C can elide to P. Today only 'A' is supported when 'B' and 'C' are empty sets. [end quote]