Ok, thanks.
Another thing I noticed: When I do 'darcs convert export --write-marks
darcs.marks' in different copies of the same repo (same as far as darcs
is concerned, i.e. push and pull report no patches), the marks files can
differ. What is even more disconcerting is they still differ if I
removed the numbering (so they contain only the hashes) and sort them
afterwards. They don't even have the same number of lines (1333 vs.
1335). However, if I make a fresh copy of a repo with 'darcs get', then
the marks files are identical.
Looking at the code, it seems that patches are looked up in the marks
file by number, not by their hash key. I think this is wrong, since
darcs can re-order the patches in a repo. Instead, darcs should keep
track of which patches (identified by their hash) have already been
converted (by looking them up in the marks file by the hash value).
These patches should all be applied first, without outputting them to
the fast-export stream. Only then should all the other patches be
converted, added to the fast-export stream, and also recorded in the
marks file.
|