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

Reply via email to