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 | <Component Id="help.internals" Guid="$(var.help.internals.guid)" Win64='$(var.IsX64)'> |
|
40 | <Component Id="help.internals" Guid="$(var.help.internals.guid)" Win64='$(var.IsX64)'> | |
41 | <File Id="internals.bundles.txt" Name="bundles.txt" KeyPath="yes" /> |
|
41 | <File Id="internals.bundles.txt" Name="bundles.txt" KeyPath="yes" /> | |
42 | <File Id="internals.changegroups.txt" Name="changegroups.txt" /> |
|
42 | <File Id="internals.changegroups.txt" Name="changegroups.txt" /> | |
|
43 | <File Id="internals.requirements.txt" Name="requirements.txt" /> | |||
43 | <File Id="internals.revlogs.txt" Name="revlogs.txt" /> |
|
44 | <File Id="internals.revlogs.txt" Name="revlogs.txt" /> | |
44 | </Component> |
|
45 | </Component> | |
45 | </Directory> |
|
46 | </Directory> |
@@ -188,6 +188,8 b' internalstable = sorted([' | |||||
188 | loaddoc('bundles', subdir='internals')), |
|
188 | loaddoc('bundles', subdir='internals')), | |
189 | (['changegroups'], _('representation of revlog data'), |
|
189 | (['changegroups'], _('representation of revlog data'), | |
190 | loaddoc('changegroups', subdir='internals')), |
|
190 | loaddoc('changegroups', subdir='internals')), | |
|
191 | (['requirements'], _('repository requirements'), | |||
|
192 | loaddoc('requirements', subdir='internals')), | |||
191 | (['revlogs'], _('revision storage mechanism'), |
|
193 | (['revlogs'], _('revision storage mechanism'), | |
192 | loaddoc('revlogs', subdir='internals')), |
|
194 | loaddoc('revlogs', subdir='internals')), | |
193 | ]) |
|
195 | ]) |
@@ -875,6 +875,7 b' internals topic renders index of availab' | |||||
875 |
|
875 | |||
876 | bundles container for exchange of repository data |
|
876 | bundles container for exchange of repository data | |
877 | changegroups representation of revlog data |
|
877 | changegroups representation of revlog data | |
|
878 | requirements repository requirements | |||
878 | revlogs revision storage mechanism |
|
879 | revlogs revision storage mechanism | |
879 |
|
880 | |||
880 | sub-topics can be accessed |
|
881 | sub-topics can be accessed | |
@@ -2727,6 +2728,13 b' Sub-topic indexes rendered properly' | |||||
2727 | representation of revlog data |
|
2728 | representation of revlog data | |
2728 | </td></tr> |
|
2729 | </td></tr> | |
2729 | <tr><td> |
|
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 | <a href="/help/internals.revlogs"> |
|
2738 | <a href="/help/internals.revlogs"> | |
2731 | revlogs |
|
2739 | revlogs | |
2732 | </a> |
|
2740 | </a> |
General Comments 0
You need to be logged in to leave comments.
Login now