This is an archive of the discontinued Mercurial Phabricator instance.

streamclone: treat volatile file as "fullfile"
ClosedPublic

Authored by marmoute on Apr 20 2021, 12:09 AM.

Details

Summary

The nodemap related file might change (or get deleted) during the stream clone
in a way incompatible with the streaming process.

So we introduce a new flag for this type of file and integrate it with the
existing revlog_type field recently added to store.walk returns.

We use that new flat to dispatch such file to the existing mechanism for "atomic
replacement" file for the nodemap docket and datafile. This fix the bugs we have
been adding tests for.

Strictly speaking, the nodemap datafile is happened only a could maybe be used
in a slightly more efficient way, however this is good enough for now.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

marmoute created this revision.Apr 20 2021, 12:09 AM
Alphare requested changes to this revision.Apr 20 2021, 4:45 AM
Alphare added a subscriber: Alphare.

Your description is mixing "append" and "happen" again, but in the reverse order of the last patch.

mercurial/store.py
392

s/as/is/

429

I think repeating a small comment here would be nice

This revision now requires changes to proceed.Apr 20 2021, 4:45 AM
marmoute added inline comments.Apr 20 2021, 4:55 AM
mercurial/store.py
392

I moved to files that are.

Thanks

baymax updated this revision to Diff 27090.Apr 20 2021, 5:20 AM

✅ refresh by Heptapod after a successful CI run (🐙 💚)

Alphare accepted this revision.Apr 20 2021, 9:54 AM
This revision was not accepted when it landed; it landed in state Needs Review.
This revision was automatically updated to reflect the committed changes.