From patchwork Thu Jun 7 14:11:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [14, of, 25, RFC] phases: add a repository requirement about internal phase From: Boris Feld X-Patchwork-Id: 32008 Message-Id: To: mercurial-devel@mercurial-scm.org Date: Thu, 07 Jun 2018 16:11:13 +0200 # HG changeset patch # User Boris Feld # Date 1527148750 -7200 # Thu May 24 09:59:10 2018 +0200 # Node ID d6ac390e2ebdf51f095168fe314dd956db09e2b9 # Parent e7b11679c4b43c3933bda699fc387bbfd496762e # EXP-Topic internal-phase # Available At https://bitbucket.org/octobus/mercurial-devel/ # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r d6ac390e2ebd phases: add a repository requirement about internal phase For internal changeset to be properly hidden, the client version needs to support it. So we introduce a new repository requirement that will make sure client touching a repository that use internal phase all supports the feature. diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -648,6 +648,9 @@ coreconfigitem('format', 'usegeneraldelt coreconfigitem('format', 'usestore', default=True, ) +coreconfigitem('format', 'internal-phase', + default=False, +) coreconfigitem('fsmonitor', 'warn_when_unused', default=True, ) diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -384,6 +384,7 @@ class localrepository(object): 'relshared', 'dotencode', 'exp-sparse', + 'internal-phase' } openerreqs = { 'revlogv1', @@ -2374,5 +2375,8 @@ def newreporequirements(repo): # generaldelta is implied by revlogv2. requirements.discard('generaldelta') requirements.add(REVLOGV2_REQUIREMENT) + # experimental config: format.internal-phase + if repo.ui.configbool('format', 'internal-phase'): + requirements.add('internal-phase') return requirements