Patchwork D8912: repository: introduce constant for internal phase repo requirement and use it

login
register
mail settings
Submitter phabricator
Date Aug. 7, 2020, 12:45 p.m.
Message ID <differential-rev-PHID-DREV-sseu3rbzhc7iqxekmczj-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/47012/
State Superseded
Headers show

Comments

phabricator - Aug. 7, 2020, 12:45 p.m.
pulkit created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  In future we will like to much cleaner logic around which requirement is for
  working copy and which can go in store. To start with that, we first need to
  de-clutter the requirement values spread around and replace them with constants.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D8912

AFFECTED FILES
  mercurial/interfaces/repository.py
  mercurial/localrepo.py
  mercurial/phases.py

CHANGE DETAILS




To: pulkit, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/mercurial/phases.py b/mercurial/phases.py
--- a/mercurial/phases.py
+++ b/mercurial/phases.py
@@ -125,6 +125,7 @@ 
     txnutil,
     util,
 )
+from .interfaces import repository
 
 _fphasesentry = struct.Struct(b'>i20s')
 
@@ -154,7 +155,7 @@ 
 
 def supportinternal(repo):
     """True if the internal phase can be used on a repository"""
-    return b'internal-phase' in repo.requirements
+    return repository.INTERNAL_PHASE_REQUIREMENT in repo.requirements
 
 
 def _readroots(repo, phasedefaults=None):
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1068,7 +1068,7 @@ 
         b'relshared',
         b'dotencode',
         repository.SPARSE_REQUIREMENT,
-        b'internal-phase',
+        repository.INTERNAL_PHASE_REQUIREMENT,
     }
 
     # list of prefix for file which can be written without 'wlock'
@@ -3324,7 +3324,7 @@ 
         requirements.add(REVLOGV2_REQUIREMENT)
     # experimental config: format.internal-phase
     if ui.configbool(b'format', b'internal-phase'):
-        requirements.add(b'internal-phase')
+        requirements.add(repository.INTERNAL_PHASE_REQUIREMENT)
 
     if createopts.get(b'narrowfiles'):
         requirements.add(repository.NARROW_REQUIREMENT)
diff --git a/mercurial/interfaces/repository.py b/mercurial/interfaces/repository.py
--- a/mercurial/interfaces/repository.py
+++ b/mercurial/interfaces/repository.py
@@ -18,6 +18,10 @@ 
 # Enables sparse working directory usage
 SPARSE_REQUIREMENT = b'exp-sparse'
 
+# Enables the internal phase which is used to hide changesets instead
+# of stripping them
+INTERNAL_PHASE_REQUIREMENT = b'internal-phase'
+
 # Local repository feature string.
 
 # Revlogs are being used for file storage.