[PATCH 2 of 8 upgraderepo V3] repair: implement requirements checking for upgrades

Augie Fackler raf at durin42.com
Sat Dec 24 15:16:06 EST 2016

(+martinvonz, durham for manifest questions)

On Sun, Dec 18, 2016 at 05:07:58PM -0800, Gregory Szorc wrote:
> # HG changeset patch
> # User Gregory Szorc <gregory.szorc at gmail.com>
> # Date 1482106614 28800
> #      Sun Dec 18 16:16:54 2016 -0800
> # Node ID 8c7cd8a43f9e9b230bc125e57b80de73eb0649b5
> # Parent  94c7d28b32a1f15ebd67e4ef54114ec80b33243f
> repair: implement requirements checking for upgrades
> This commit introduces functionality for upgrading a repository in
> place. The first part that's implemented is testing for upgrade
> "compatibility." This is done by examining repository requirements.
> There are 5 functions returning sets of requirements that control
> upgrading. Why so many functions? Mainly to support extensions.
> Functions are easier to monkeypatch than module variables.
> Astute readers will see that we don't support "manifestv2" and
> "treemanifest" requirements in the upgrade mechanism. I don't have
> a great answer for why other than this is a complex set of patches
> and I don't want to deal with the complexity of these experimental
> features just yet. We can teach the upgrade mechanism about them
> later, once the basic upgrade mechanism is in place.

I believe manifestv2 has turned out to be a total dead end. We should
probably jettison that code and mark the capability string as obsolete
and not to be used in the future. Does anyone see a reason for me to
not do that?

More information about the Mercurial-devel mailing list