I (Julian Foad) wrote on 4th December: > Julian Foad wrote: >> ... 'svnsync' ... my current thought is it >> should 'correct' the mergeinfo by removing the r0 reference. > > I have written a test for this, and hacked up code to do this by textual > substitution. It isn't quite right -- for example it would go wrong if a > path contained the character sequence ":0", among other issues. I > ought to rewrite it in the form of a proper mergeinfo parser but one that is > more lenient than the regular parser.
In http://svn.apache.org/r1646250 I committed a version that also works by textual substitution, but (hopefully) without the above-mentioned issues. This makes svnsync remove r0 references before trying to commit. I did look into fixing this a different way, by making a more lenient mergeinfo parser. However, that opens up questions about how to define the syntax for mergeinfo in terms of hard requirements, optional variations, and a canonical form. That might have been a good approach to take when mergeinfo was originally invented, but it seems rather too late to go down that road now. So is the issue fixed? * Yes: it should now be possible to svnsync the repository. * Yes: it should now be possible to dump and load the repository. * Maybe: 'svnrdump dump' and 'svnrdump load' may have the same problem and should be checked. * No: the underlying issue has not been addressed, that old mergeinfo that was previously 'working' is still present in repositories but is now being considered 'invalid' with no in-place way to upgrade it. - Julian