requirements.txt
144 lines
| 4.6 KiB
| text/plain
|
TextLexer
Gregory Szorc
|
r28523 | Repositories contain a file (``.hg/requires``) containing a list of | ||
features/capabilities that are *required* for clients to interface | ||||
with the repository. This file has been present in Mercurial since | ||||
version 0.9.2 (released December 2006). | ||||
One of the first things clients do when opening a repository is read | ||||
``.hg/requires`` and verify that all listed requirements are supported, | ||||
aborting if not. Requirements are therefore a strong mechanism to | ||||
prevent incompatible clients from reading from unknown repository | ||||
formats or even corrupting them by writing to them. | ||||
Extensions may add requirements. When they do this, clients not running | ||||
an extension will be unable to read from repositories. | ||||
The following sections describe the requirements defined by the | ||||
Mercurial core distribution. | ||||
revlogv1 | ||||
Gregory Szorc
|
r29747 | ======== | ||
Gregory Szorc
|
r28523 | |||
When present, revlogs are version 1 (RevlogNG). RevlogNG was introduced | ||||
in 2006. The ``revlogv1`` requirement has been enabled by default | ||||
since the ``requires`` file was introduced in Mercurial 0.9.2. | ||||
If this requirement is not present, version 0 revlogs are assumed. | ||||
store | ||||
Gregory Szorc
|
r29747 | ===== | ||
Gregory Szorc
|
r28523 | |||
The *store* repository layout should be used. | ||||
This requirement has been enabled by default since the ``requires`` file | ||||
was introduced in Mercurial 0.9.2. | ||||
fncache | ||||
Gregory Szorc
|
r29747 | ======= | ||
Gregory Szorc
|
r28523 | |||
The *fncache* repository layout should be used. | ||||
The *fncache* layout hash encodes filenames with long paths and | ||||
encodes reserved filenames. | ||||
This requirement is enabled by default when the *store* requirement is | ||||
enabled (which is the default behavior). It was introduced in Mercurial | ||||
1.1 (released December 2008). | ||||
shared | ||||
Gregory Szorc
|
r29747 | ====== | ||
Gregory Szorc
|
r28523 | |||
Denotes that the store for a repository is shared from another location | ||||
(defined by the ``.hg/sharedpath`` file). | ||||
This requirement is set when a repository is created via :hg:`share`. | ||||
The requirement was added in Mercurial 1.3 (released July 2009). | ||||
Dan Villiom Podlaski Christiansen
|
r31133 | relshared | ||
========= | ||||
Derivative of ``shared``; the location of the store is relative to the | ||||
store of this repository. | ||||
This requirement is set when a repository is created via :hg:`share` | ||||
using the ``--relative`` option. | ||||
The requirement was added in Mercurial 4.2 (released May 2017). | ||||
Gregory Szorc
|
r28523 | dotencode | ||
Gregory Szorc
|
r29747 | ========= | ||
Gregory Szorc
|
r28523 | |||
The *dotencode* repository layout should be used. | ||||
The *dotencode* layout encodes the first period or space in filenames | ||||
to prevent issues on OS X and Windows. | ||||
This requirement is enabled by default when the *store* requirement | ||||
is enabled (which is the default behavior). It was introduced in | ||||
Mercurial 1.7 (released November 2010). | ||||
parentdelta | ||||
Gregory Szorc
|
r29747 | =========== | ||
Gregory Szorc
|
r28523 | |||
Denotes a revlog delta encoding format that was experimental and | ||||
replaced by *generaldelta*. It should not be seen in the wild because | ||||
it was never enabled by default. | ||||
This requirement was added in Mercurial 1.7 and removed in Mercurial | ||||
1.9. | ||||
generaldelta | ||||
Gregory Szorc
|
r29747 | ============ | ||
Gregory Szorc
|
r28523 | |||
Revlogs should be created with the *generaldelta* flag enabled. The | ||||
generaldelta flag will cause deltas to be encoded against a parent | ||||
revision instead of the previous revision in the revlog. | ||||
Support for this requirement was added in Mercurial 1.9 (released | ||||
July 2011). The requirement was disabled on new repositories by | ||||
default until Mercurial 3.7 (released February 2016). | ||||
manifestv2 | ||||
Gregory Szorc
|
r29747 | ========== | ||
Gregory Szorc
|
r28523 | |||
Denotes that version 2 of manifests are being used. | ||||
Support for this requirement was added in Mercurial 3.4 (released | ||||
Augie Fackler
|
r36391 | May 2015). The new format failed to meet expectations and support | ||
for the format and requirement were removed in Mercurial 4.6 | ||||
(released May 2018) since the feature never graduated frome experiment | ||||
status. | ||||
Gregory Szorc
|
r28523 | |||
treemanifest | ||||
Gregory Szorc
|
r29747 | ============ | ||
Gregory Szorc
|
r28523 | |||
Denotes that tree manifests are being used. Tree manifests are | ||||
one manifest per directory (as opposed to a single flat manifest). | ||||
Support for this requirement was added in Mercurial 3.4 (released | ||||
August 2015). The requirement is currently experimental and is | ||||
disabled by default. | ||||
Gregory Szorc
|
r33556 | |||
exp-sparse | ||||
========== | ||||
The working directory is sparse (only contains a subset of files). | ||||
Support for this requirement was added in Mercurial 4.3 (released | ||||
August 2017). This requirement and feature are experimental and may | ||||
disappear in a future Mercurial release. The requirement will only | ||||
be present on repositories that have opted in to a sparse working | ||||
directory. | ||||
Martin von Zweigbergk
|
r42544 | |||
bookmarksinstore | ||||
================== | ||||
Bookmarks are stored in ``.hg/store/`` instead of directly in ``.hg/`` | ||||
where they used to be stored. The active bookmark is still stored | ||||
directly in ``.hg/``. This makes them always shared by ``hg share``, | ||||
whether or not ``-B`` was passed. | ||||
Support for this requirement was added in Mercurial 5.1 (released | ||||
August 2019). The requirement will only be present on repositories | ||||
that have opted in to this format (by having | ||||
``format.bookmarks-in-store=true`` set when they were created). | ||||