##// END OF EJS Templates
share: make it possible to control the working copy format variant...
share: make it possible to control the working copy format variant A share will use the same format as its source for the store, but there are no reason to not lets it control the working copy variant at creation time. So we make it so. Differential Revision: https://phab.mercurial-scm.org/D11892

File last commit:

r49116:bf11ff22 default
r49297:bf2738e0 default
Show More
requirements.py
87 lines | 3.4 KiB | text/x-python | PythonLexer
Pulkit Goyal
requirements: introduce new requirements related module...
r45932 # requirements.py - objects and functions related to repository requirements
#
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com>
Pulkit Goyal
requirements: introduce new requirements related module...
r45932 #
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
Raphaël Gomès
requirements: also add a generaldelta constant...
r47372 GENERALDELTA_REQUIREMENT = b'generaldelta'
Raphaël Gomès
requirements: also add a dotencode constant...
r47381 DOTENCODE_REQUIREMENT = b'dotencode'
Raphaël Gomès
requirements: also add a store constant...
r47382 STORE_REQUIREMENT = b'store'
Raphaël Gomès
requirements: also add a fncache constant...
r47383 FNCACHE_REQUIREMENT = b'fncache'
Raphaël Gomès
requirements: also add a generaldelta constant...
r47372
dirstate-v2: freeze the on-disk format...
r49116 DIRSTATE_V2_REQUIREMENT = b'dirstate-v2'
Simon Sapin
dirstate-v2: Add a new experimental `exp-dirstate-v2` repository requirement...
r48052
Pulkit Goyal
requirements: introduce new requirements related module...
r45932 # When narrowing is finalized and no longer subject to format changes,
# we should move this to just "narrow" or similar.
NARROW_REQUIREMENT = b'narrowhg-experimental'
# 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'
# Stores manifest in Tree structure
TREEMANIFEST_REQUIREMENT = b'treemanifest'
Pulkit Goyal
localrepo: move requirements constant to requirements module...
r45933
Raphaël Gomès
requirements: add constant for revlog v1 requirement...
r47371 REVLOGV1_REQUIREMENT = b'revlogv1'
Pulkit Goyal
localrepo: move requirements constant to requirements module...
r45933 # Increment the sub-version when the revlog v2 format changes to lock out old
# clients.
changelogv2: introduce a "changelogv2" feature...
r48037 CHANGELOGV2_REQUIREMENT = b'exp-changelog-v2'
# Increment the sub-version when the revlog v2 format changes to lock out old
# clients.
Raphaël Gomès
revlog: introduce v2 format...
r47438 REVLOGV2_REQUIREMENT = b'exp-revlogv2.2'
Pulkit Goyal
localrepo: move requirements constant to requirements module...
r45933
# A repository with the sparserevlog feature will have delta chains that
# can spread over a larger span. Sparse reading cuts these large spans into
# pieces, so that each piece isn't too big.
# Without the sparserevlog capability, reading from the repository could use
# huge amounts of memory, because the whole span would be read at once,
# including all the intermediate revisions that aren't pertinent for the chain.
# This is why once a repository has enabled sparse-read, it becomes required.
SPARSEREVLOG_REQUIREMENT = b'sparserevlog'
# A repository with the the copies-sidedata-changeset requirement will store
# copies related information in changeset's sidedata.
COPIESSDC_REQUIREMENT = b'exp-copies-sidedata-changeset'
# The repository use persistent nodemap for the changelog and the manifest.
NODEMAP_REQUIREMENT = b'persistent-nodemap'
Pulkit Goyal
requirements: introduce a set of working directory specific requirements...
r45934
Pulkit Goyal
requirements: introduce constants for `shared` and `relshared` requirements...
r45946 # Denotes that the current repository is a share
SHARED_REQUIREMENT = b'shared'
# Denotes that current repository is a share and the shared source path is
# relative to the current repository root path
RELATIVE_SHARED_REQUIREMENT = b'relshared'
Pulkit Goyal
share: introduce config option to store requires in .hg/store...
r46055 # A repository with share implemented safely. The repository has different
# store and working copy requirements i.e. both `.hg/requires` and
# `.hg/store/requires` are present.
Pulkit Goyal
share: move share safe functionality out of experimental...
r47052 SHARESAFE_REQUIREMENT = b'share-safe'
Pulkit Goyal
share: introduce config option to store requires in .hg/store...
r46055
Pulkit Goyal
requirements: introduce a set of working directory specific requirements...
r45934 # List of requirements which are working directory specific
# These requirements cannot be shared between repositories if they
# share the same store
Pulkit Goyal
requirements: introduce constants for `shared` and `relshared` requirements...
r45946 # * sparse is a working directory specific functionality and hence working
# directory specific requirement
# * SHARED_REQUIREMENT and RELATIVE_SHARED_REQUIREMENT are requirements which
# represents that the current working copy/repository shares store of another
# repo. Hence both of them should be stored in working copy
Pulkit Goyal
share: introduce config option to store requires in .hg/store...
r46055 # * SHARESAFE_REQUIREMENT needs to be stored in working dir to mark that rest of
# the requirements are stored in store's requires
Simon Sapin
dirstate-v2: Add a new experimental `exp-dirstate-v2` repository requirement...
r48052 # * DIRSTATE_V2_REQUIREMENT affects .hg/dirstate, of which there is one per
# working directory.
Pulkit Goyal
requirements: introduce constants for `shared` and `relshared` requirements...
r45946 WORKING_DIR_REQUIREMENTS = {
SPARSE_REQUIREMENT,
SHARED_REQUIREMENT,
RELATIVE_SHARED_REQUIREMENT,
Pulkit Goyal
share: introduce config option to store requires in .hg/store...
r46055 SHARESAFE_REQUIREMENT,
Simon Sapin
dirstate-v2: Add a new experimental `exp-dirstate-v2` repository requirement...
r48052 DIRSTATE_V2_REQUIREMENT,
Pulkit Goyal
requirements: introduce constants for `shared` and `relshared` requirements...
r45946 }