If two directories with the same path are added on trunk and a branch of trunk,
it can happen that 'svn merge' later refuses to reintegrate the branch to trunk:
svn: E195016: Reintegrate can only be used if revisions 2 through 5 were
previously merged from file:///home/stsp/svn/reint-missing-ranges/repos/trunk
to the reintegrate source, but this is not the case:
branch/dir
Missing ranges: /trunk/dir:3
In this case, branch/dir and trunk/dir do not share node ancestry.
A sync merge was run just before the reintegrate merge. This merge raised a tree
conflict at 'dir' which was resolved to use the branch's version of 'dir' by
running 'svn resolved --accept working', which is the most likely action an
average user would try in this situation (especially since our current conflict
resolver does not really present any useful alternative, which is a separate and
larger issue in itself).
Running another sync merge does not resolve the problem since there is in fact
nothing left to merge.
Instead, the reintegrate merge should proceed and raise an add vs add tree
conflict. Interestingly, this is exactly what a 2-URL merge effecting the same
reintegrate operation does! So it would seem the pre-condition checks run before
a reintegrate merge are getting confused. I suppose if the pre-condition checks
were fixed the merge would "just work" as expected.