Show More
@@ -0,0 +1,110 b'' | |||
|
1 | Requirements | |
|
2 | ============ | |
|
3 | ||
|
4 | Repositories contain a file (``.hg/requires``) containing a list of | |
|
5 | features/capabilities that are *required* for clients to interface | |
|
6 | with the repository. This file has been present in Mercurial since | |
|
7 | version 0.9.2 (released December 2006). | |
|
8 | ||
|
9 | One of the first things clients do when opening a repository is read | |
|
10 | ``.hg/requires`` and verify that all listed requirements are supported, | |
|
11 | aborting if not. Requirements are therefore a strong mechanism to | |
|
12 | prevent incompatible clients from reading from unknown repository | |
|
13 | formats or even corrupting them by writing to them. | |
|
14 | ||
|
15 | Extensions may add requirements. When they do this, clients not running | |
|
16 | an extension will be unable to read from repositories. | |
|
17 | ||
|
18 | The following sections describe the requirements defined by the | |
|
19 | Mercurial core distribution. | |
|
20 | ||
|
21 | revlogv1 | |
|
22 | -------- | |
|
23 | ||
|
24 | When present, revlogs are version 1 (RevlogNG). RevlogNG was introduced | |
|
25 | in 2006. The ``revlogv1`` requirement has been enabled by default | |
|
26 | since the ``requires`` file was introduced in Mercurial 0.9.2. | |
|
27 | ||
|
28 | If this requirement is not present, version 0 revlogs are assumed. | |
|
29 | ||
|
30 | store | |
|
31 | ----- | |
|
32 | ||
|
33 | The *store* repository layout should be used. | |
|
34 | ||
|
35 | This requirement has been enabled by default since the ``requires`` file | |
|
36 | was introduced in Mercurial 0.9.2. | |
|
37 | ||
|
38 | fncache | |
|
39 | ------- | |
|
40 | ||
|
41 | The *fncache* repository layout should be used. | |
|
42 | ||
|
43 | The *fncache* layout hash encodes filenames with long paths and | |
|
44 | encodes reserved filenames. | |
|
45 | ||
|
46 | This requirement is enabled by default when the *store* requirement is | |
|
47 | enabled (which is the default behavior). It was introduced in Mercurial | |
|
48 | 1.1 (released December 2008). | |
|
49 | ||
|
50 | shared | |
|
51 | ------ | |
|
52 | ||
|
53 | Denotes that the store for a repository is shared from another location | |
|
54 | (defined by the ``.hg/sharedpath`` file). | |
|
55 | ||
|
56 | This requirement is set when a repository is created via :hg:`share`. | |
|
57 | ||
|
58 | The requirement was added in Mercurial 1.3 (released July 2009). | |
|
59 | ||
|
60 | dotencode | |
|
61 | --------- | |
|
62 | ||
|
63 | The *dotencode* repository layout should be used. | |
|
64 | ||
|
65 | The *dotencode* layout encodes the first period or space in filenames | |
|
66 | to prevent issues on OS X and Windows. | |
|
67 | ||
|
68 | This requirement is enabled by default when the *store* requirement | |
|
69 | is enabled (which is the default behavior). It was introduced in | |
|
70 | Mercurial 1.7 (released November 2010). | |
|
71 | ||
|
72 | parentdelta | |
|
73 | ----------- | |
|
74 | ||
|
75 | Denotes a revlog delta encoding format that was experimental and | |
|
76 | replaced by *generaldelta*. It should not be seen in the wild because | |
|
77 | it was never enabled by default. | |
|
78 | ||
|
79 | This requirement was added in Mercurial 1.7 and removed in Mercurial | |
|
80 | 1.9. | |
|
81 | ||
|
82 | generaldelta | |
|
83 | ------------ | |
|
84 | ||
|
85 | Revlogs should be created with the *generaldelta* flag enabled. The | |
|
86 | generaldelta flag will cause deltas to be encoded against a parent | |
|
87 | revision instead of the previous revision in the revlog. | |
|
88 | ||
|
89 | Support for this requirement was added in Mercurial 1.9 (released | |
|
90 | July 2011). The requirement was disabled on new repositories by | |
|
91 | default until Mercurial 3.7 (released February 2016). | |
|
92 | ||
|
93 | manifestv2 | |
|
94 | ---------- | |
|
95 | ||
|
96 | Denotes that version 2 of manifests are being used. | |
|
97 | ||
|
98 | Support for this requirement was added in Mercurial 3.4 (released | |
|
99 | May 2015). The requirement is currently experimental and is disabled | |
|
100 | by default. | |
|
101 | ||
|
102 | treemanifest | |
|
103 | ------------ | |
|
104 | ||
|
105 | Denotes that tree manifests are being used. Tree manifests are | |
|
106 | one manifest per directory (as opposed to a single flat manifest). | |
|
107 | ||
|
108 | Support for this requirement was added in Mercurial 3.4 (released | |
|
109 | August 2015). The requirement is currently experimental and is | |
|
110 | disabled by default. |
@@ -40,6 +40,7 b'' | |||
|
40 | 40 | <Component Id="help.internals" Guid="$(var.help.internals.guid)" Win64='$(var.IsX64)'> |
|
41 | 41 | <File Id="internals.bundles.txt" Name="bundles.txt" KeyPath="yes" /> |
|
42 | 42 | <File Id="internals.changegroups.txt" Name="changegroups.txt" /> |
|
43 | <File Id="internals.requirements.txt" Name="requirements.txt" /> | |
|
43 | 44 | <File Id="internals.revlogs.txt" Name="revlogs.txt" /> |
|
44 | 45 | </Component> |
|
45 | 46 | </Directory> |
@@ -188,6 +188,8 b' internalstable = sorted([' | |||
|
188 | 188 | loaddoc('bundles', subdir='internals')), |
|
189 | 189 | (['changegroups'], _('representation of revlog data'), |
|
190 | 190 | loaddoc('changegroups', subdir='internals')), |
|
191 | (['requirements'], _('repository requirements'), | |
|
192 | loaddoc('requirements', subdir='internals')), | |
|
191 | 193 | (['revlogs'], _('revision storage mechanism'), |
|
192 | 194 | loaddoc('revlogs', subdir='internals')), |
|
193 | 195 | ]) |
@@ -875,6 +875,7 b' internals topic renders index of availab' | |||
|
875 | 875 | |
|
876 | 876 | bundles container for exchange of repository data |
|
877 | 877 | changegroups representation of revlog data |
|
878 | requirements repository requirements | |
|
878 | 879 | revlogs revision storage mechanism |
|
879 | 880 | |
|
880 | 881 | sub-topics can be accessed |
@@ -2727,6 +2728,13 b' Sub-topic indexes rendered properly' | |||
|
2727 | 2728 | representation of revlog data |
|
2728 | 2729 | </td></tr> |
|
2729 | 2730 | <tr><td> |
|
2731 | <a href="/help/internals.requirements"> | |
|
2732 | requirements | |
|
2733 | </a> | |
|
2734 | </td><td> | |
|
2735 | repository requirements | |
|
2736 | </td></tr> | |
|
2737 | <tr><td> | |
|
2730 | 2738 | <a href="/help/internals.revlogs"> |
|
2731 | 2739 | revlogs |
|
2732 | 2740 | </a> |
General Comments 0
You need to be logged in to leave comments.
Login now