Summary: This is nicer because it only does the upgrade when an operation that'll probably take a while anyway is run.
Test Plan: Enabled the extension on a non-generaldelta repo, then ran `hg status`. Saw that it wasn't upgraded. Next, ran `hg pull`, and saw that it was.
Reviewers: davidsp, rmcelroy, akushner, pyd, daviser, mitrandir, ericsumner, durham
Reviewed By: durham
Differential Revision: https://phabricator.fb.com/D1749026
Signature: t1:1749026:1418940170:6fdecc074294b26b7c3e9bd8c1463eefd13a8fc1
Summary:
We actually realized that converting a manifest to generaldelta is not as easy as just flipping a bit -- the meaning of 'base' is different for normal vs generaldelta revlogs.
Instead, open a new generaldelta revlog, write out every node from the manifest, and then close the revlog. Finally, move over the revlog index and data files.
Test Plan: Ran it on local non-generaldelta fbandroid and fbcode repos. It's pretty fast: under two minutes each for both.
Reviewers: davidsp, rmcelroy, akushner, daviser, mpm, pyd, durham
Reviewed By: pyd
Subscribers: hannesr
Differential Revision: https://phabricator.fb.com/D1738808
Signature: t1:1738808:1418522355:31e424dc523d40f8194490d75160e993f48a0f27