##// END OF EJS Templates
requirements: introduce a set of working directory specific requirements...
Pulkit Goyal -
r45934:bd56597b default
parent child Browse files
Show More
@@ -1,46 +1,51 b''
1 # requirements.py - objects and functions related to repository requirements
1 # requirements.py - objects and functions related to repository requirements
2 #
2 #
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 from __future__ import absolute_import
8 from __future__ import absolute_import
9
9
10 # When narrowing is finalized and no longer subject to format changes,
10 # When narrowing is finalized and no longer subject to format changes,
11 # we should move this to just "narrow" or similar.
11 # we should move this to just "narrow" or similar.
12 NARROW_REQUIREMENT = b'narrowhg-experimental'
12 NARROW_REQUIREMENT = b'narrowhg-experimental'
13
13
14 # Enables sparse working directory usage
14 # Enables sparse working directory usage
15 SPARSE_REQUIREMENT = b'exp-sparse'
15 SPARSE_REQUIREMENT = b'exp-sparse'
16
16
17 # Enables the internal phase which is used to hide changesets instead
17 # Enables the internal phase which is used to hide changesets instead
18 # of stripping them
18 # of stripping them
19 INTERNAL_PHASE_REQUIREMENT = b'internal-phase'
19 INTERNAL_PHASE_REQUIREMENT = b'internal-phase'
20
20
21 # Stores manifest in Tree structure
21 # Stores manifest in Tree structure
22 TREEMANIFEST_REQUIREMENT = b'treemanifest'
22 TREEMANIFEST_REQUIREMENT = b'treemanifest'
23
23
24 # Increment the sub-version when the revlog v2 format changes to lock out old
24 # Increment the sub-version when the revlog v2 format changes to lock out old
25 # clients.
25 # clients.
26 REVLOGV2_REQUIREMENT = b'exp-revlogv2.1'
26 REVLOGV2_REQUIREMENT = b'exp-revlogv2.1'
27
27
28 # A repository with the sparserevlog feature will have delta chains that
28 # A repository with the sparserevlog feature will have delta chains that
29 # can spread over a larger span. Sparse reading cuts these large spans into
29 # can spread over a larger span. Sparse reading cuts these large spans into
30 # pieces, so that each piece isn't too big.
30 # pieces, so that each piece isn't too big.
31 # Without the sparserevlog capability, reading from the repository could use
31 # Without the sparserevlog capability, reading from the repository could use
32 # huge amounts of memory, because the whole span would be read at once,
32 # huge amounts of memory, because the whole span would be read at once,
33 # including all the intermediate revisions that aren't pertinent for the chain.
33 # including all the intermediate revisions that aren't pertinent for the chain.
34 # This is why once a repository has enabled sparse-read, it becomes required.
34 # This is why once a repository has enabled sparse-read, it becomes required.
35 SPARSEREVLOG_REQUIREMENT = b'sparserevlog'
35 SPARSEREVLOG_REQUIREMENT = b'sparserevlog'
36
36
37 # A repository with the sidedataflag requirement will allow to store extra
37 # A repository with the sidedataflag requirement will allow to store extra
38 # information for revision without altering their original hashes.
38 # information for revision without altering their original hashes.
39 SIDEDATA_REQUIREMENT = b'exp-sidedata-flag'
39 SIDEDATA_REQUIREMENT = b'exp-sidedata-flag'
40
40
41 # A repository with the the copies-sidedata-changeset requirement will store
41 # A repository with the the copies-sidedata-changeset requirement will store
42 # copies related information in changeset's sidedata.
42 # copies related information in changeset's sidedata.
43 COPIESSDC_REQUIREMENT = b'exp-copies-sidedata-changeset'
43 COPIESSDC_REQUIREMENT = b'exp-copies-sidedata-changeset'
44
44
45 # The repository use persistent nodemap for the changelog and the manifest.
45 # The repository use persistent nodemap for the changelog and the manifest.
46 NODEMAP_REQUIREMENT = b'persistent-nodemap'
46 NODEMAP_REQUIREMENT = b'persistent-nodemap'
47
48 # List of requirements which are working directory specific
49 # These requirements cannot be shared between repositories if they
50 # share the same store
51 WORKING_DIR_REQUIREMENTS = {SPARSE_REQUIREMENT}
General Comments 0
You need to be logged in to leave comments. Login now