Mercurial > hg
annotate mercurial/requirements.py @ 46637:ab58098bebed
requirements: also add a store constant
Continue the cleanup to the remaining requirements
Differential Revision: https://phab.mercurial-scm.org/D10108
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 03 Mar 2021 12:35:29 +0100 |
parents | c3773636ddbb |
children | b4c2a2af25e2 |
rev | line source |
---|---|
45372
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
1 # requirements.py - objects and functions related to repository requirements |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
2 # |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
4 # |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
7 |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
8 from __future__ import absolute_import |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
9 |
46627
f4c325bf80fc
requirements: also add a generaldelta constant
Raphaël Gomès <rgomes@octobus.net>
parents:
46626
diff
changeset
|
10 GENERALDELTA_REQUIREMENT = b'generaldelta' |
46636
c3773636ddbb
requirements: also add a dotencode constant
Raphaël Gomès <rgomes@octobus.net>
parents:
46627
diff
changeset
|
11 DOTENCODE_REQUIREMENT = b'dotencode' |
46637
ab58098bebed
requirements: also add a store constant
Raphaël Gomès <rgomes@octobus.net>
parents:
46636
diff
changeset
|
12 STORE_REQUIREMENT = b'store' |
46627
f4c325bf80fc
requirements: also add a generaldelta constant
Raphaël Gomès <rgomes@octobus.net>
parents:
46626
diff
changeset
|
13 |
45372
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
14 # When narrowing is finalized and no longer subject to format changes, |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
15 # we should move this to just "narrow" or similar. |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
16 NARROW_REQUIREMENT = b'narrowhg-experimental' |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
17 |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
18 # Enables sparse working directory usage |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
19 SPARSE_REQUIREMENT = b'exp-sparse' |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
20 |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
21 # Enables the internal phase which is used to hide changesets instead |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
22 # of stripping them |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
23 INTERNAL_PHASE_REQUIREMENT = b'internal-phase' |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
24 |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
25 # Stores manifest in Tree structure |
77b8588dd84e
requirements: introduce new requirements related module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff
changeset
|
26 TREEMANIFEST_REQUIREMENT = b'treemanifest' |
45373
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
27 |
46626
ee91966aec0f
requirements: add constant for revlog v1 requirement
Raphaël Gomès <rgomes@octobus.net>
parents:
46334
diff
changeset
|
28 REVLOGV1_REQUIREMENT = b'revlogv1' |
ee91966aec0f
requirements: add constant for revlog v1 requirement
Raphaël Gomès <rgomes@octobus.net>
parents:
46334
diff
changeset
|
29 |
45373
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
30 # Increment the sub-version when the revlog v2 format changes to lock out old |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
31 # clients. |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
32 REVLOGV2_REQUIREMENT = b'exp-revlogv2.1' |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
33 |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
34 # A repository with the sparserevlog feature will have delta chains that |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
35 # can spread over a larger span. Sparse reading cuts these large spans into |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
36 # pieces, so that each piece isn't too big. |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
37 # Without the sparserevlog capability, reading from the repository could use |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
38 # huge amounts of memory, because the whole span would be read at once, |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
39 # including all the intermediate revisions that aren't pertinent for the chain. |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
40 # This is why once a repository has enabled sparse-read, it becomes required. |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
41 SPARSEREVLOG_REQUIREMENT = b'sparserevlog' |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
42 |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
43 # A repository with the sidedataflag requirement will allow to store extra |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
44 # information for revision without altering their original hashes. |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
45 SIDEDATA_REQUIREMENT = b'exp-sidedata-flag' |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
46 |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
47 # A repository with the the copies-sidedata-changeset requirement will store |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
48 # copies related information in changeset's sidedata. |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
49 COPIESSDC_REQUIREMENT = b'exp-copies-sidedata-changeset' |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
50 |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
51 # The repository use persistent nodemap for the changelog and the manifest. |
d7dcc75a3eae
localrepo: move requirements constant to requirements module
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45372
diff
changeset
|
52 NODEMAP_REQUIREMENT = b'persistent-nodemap' |
45374
bd56597b2254
requirements: introduce a set of working directory specific requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45373
diff
changeset
|
53 |
45386
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
54 # Denotes that the current repository is a share |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
55 SHARED_REQUIREMENT = b'shared' |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
56 |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
57 # Denotes that current repository is a share and the shared source path is |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
58 # relative to the current repository root path |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
59 RELATIVE_SHARED_REQUIREMENT = b'relshared' |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
60 |
45483
d252f51ab032
share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45386
diff
changeset
|
61 # A repository with share implemented safely. The repository has different |
d252f51ab032
share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45386
diff
changeset
|
62 # store and working copy requirements i.e. both `.hg/requires` and |
d252f51ab032
share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45386
diff
changeset
|
63 # `.hg/store/requires` are present. |
46334
4b0192f592cf
share: move share safe functionality out of experimental
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45483
diff
changeset
|
64 SHARESAFE_REQUIREMENT = b'share-safe' |
45483
d252f51ab032
share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45386
diff
changeset
|
65 |
45374
bd56597b2254
requirements: introduce a set of working directory specific requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45373
diff
changeset
|
66 # List of requirements which are working directory specific |
bd56597b2254
requirements: introduce a set of working directory specific requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45373
diff
changeset
|
67 # These requirements cannot be shared between repositories if they |
bd56597b2254
requirements: introduce a set of working directory specific requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45373
diff
changeset
|
68 # share the same store |
45386
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
69 # * sparse is a working directory specific functionality and hence working |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
70 # directory specific requirement |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
71 # * SHARED_REQUIREMENT and RELATIVE_SHARED_REQUIREMENT are requirements which |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
72 # represents that the current working copy/repository shares store of another |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
73 # repo. Hence both of them should be stored in working copy |
45483
d252f51ab032
share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45386
diff
changeset
|
74 # * SHARESAFE_REQUIREMENT needs to be stored in working dir to mark that rest of |
d252f51ab032
share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45386
diff
changeset
|
75 # the requirements are stored in store's requires |
45386
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
76 WORKING_DIR_REQUIREMENTS = { |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
77 SPARSE_REQUIREMENT, |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
78 SHARED_REQUIREMENT, |
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
79 RELATIVE_SHARED_REQUIREMENT, |
45483
d252f51ab032
share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45386
diff
changeset
|
80 SHARESAFE_REQUIREMENT, |
45386
034d94f8761b
requirements: introduce constants for `shared` and `relshared` requirements
Pulkit Goyal <7895pulkit@gmail.com>
parents:
45374
diff
changeset
|
81 } |