repository: introduce constant for internal phase repo requirement and use it
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.
Differential Revision: https://phab.mercurial-scm.org/D8912
--- a/mercurial/interfaces/repository.py Sat Aug 08 10:06:32 2020 -0700
+++ b/mercurial/interfaces/repository.py Fri Aug 07 18:01:48 2020 +0530
@@ -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.
--- a/mercurial/localrepo.py Sat Aug 08 10:06:32 2020 -0700
+++ b/mercurial/localrepo.py Fri Aug 07 18:01:48 2020 +0530
@@ -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)
--- a/mercurial/phases.py Sat Aug 08 10:06:32 2020 -0700
+++ b/mercurial/phases.py Fri Aug 07 18:01:48 2020 +0530
@@ -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):