I've rewritten the exporter to stream directly the iter_changes operations. This does fix my testcase, which was with the exporter being too much involved with directory moves.
But these are not the correct semantics yet, because iter_changes appears to give an unordered set of changes.
For example (this bug's first testcase), it returns things like:
R a b
D b
Which, serialized, should become
D b
R a b
Another problematic situation is (#285175):
R b a
R a b
Which needs an intermediary to be serialized
R b t
R a b
R t a
I've rewritten the exporter to stream directly the iter_changes operations. This does fix my testcase, which was with the exporter being too much involved with directory moves.
But these are not the correct semantics yet, because iter_changes appears to give an unordered set of changes.
For example (this bug's first testcase), it returns things like:
R a b
D b
Which, serialized, should become
D b
R a b
Another problematic situation is (#285175):
R b a
R a b
Which needs an intermediary to be serialized
R b t
R a b
R t a