mercurial/help/internals/requirements.txt
author Pulkit Goyal <7895pulkit@gmail.com>
Fri, 05 May 2017 01:41:54 +0530
changeset 32155 055cca8e167b
parent 31133 23080c03a604
child 33556 22371eabb3b1
permissions -rw-r--r--
py3: use %d to format integers into bytestrings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     1
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     2
Repositories contain a file (``.hg/requires``) containing a list of
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     3
features/capabilities that are *required* for clients to interface
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     4
with the repository. This file has been present in Mercurial since
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     5
version 0.9.2 (released December 2006).
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     6
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
One of the first things clients do when opening a repository is read
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     8
``.hg/requires`` and verify that all listed requirements are supported,
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     9
aborting if not. Requirements are therefore a strong mechanism to
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    10
prevent incompatible clients from reading from unknown repository
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    11
formats or even corrupting them by writing to them.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    12
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    13
Extensions may add requirements. When they do this, clients not running
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    14
an extension will be unable to read from repositories.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    15
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    16
The following sections describe the requirements defined by the
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    17
Mercurial core distribution.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    18
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    19
revlogv1
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
    20
========
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    21
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    22
When present, revlogs are version 1 (RevlogNG). RevlogNG was introduced
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    23
in 2006. The ``revlogv1`` requirement has been enabled by default
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    24
since the ``requires`` file was introduced in Mercurial 0.9.2.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    25
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    26
If this requirement is not present, version 0 revlogs are assumed.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    27
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    28
store
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
    29
=====
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    30
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    31
The *store* repository layout should be used.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    32
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    33
This requirement has been enabled by default since the ``requires`` file
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    34
was introduced in Mercurial 0.9.2.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    35
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    36
fncache
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
    37
=======
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    38
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    39
The *fncache* repository layout should be used.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    40
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    41
The *fncache* layout hash encodes filenames with long paths and
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    42
encodes reserved filenames.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    43
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    44
This requirement is enabled by default when the *store* requirement is
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    45
enabled (which is the default behavior). It was introduced in Mercurial
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    46
1.1 (released December 2008).
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    47
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    48
shared
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
    49
======
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    50
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    51
Denotes that the store for a repository is shared from another location
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    52
(defined by the ``.hg/sharedpath`` file).
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    53
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    54
This requirement is set when a repository is created via :hg:`share`.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    55
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    56
The requirement was added in Mercurial 1.3 (released July 2009).
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    57
31133
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    58
relshared
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    59
=========
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    60
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    61
Derivative of ``shared``; the location of the store is relative to the
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    62
store of this repository.
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    63
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    64
This requirement is set when a repository is created via :hg:`share`
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    65
using the ``--relative`` option.
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    66
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    67
The requirement was added in Mercurial 4.2 (released May 2017).
23080c03a604 share: add --relative flag to store a relative path to the source
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 29747
diff changeset
    68
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    69
dotencode
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
    70
=========
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    71
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    72
The *dotencode* repository layout should be used.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    73
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    74
The *dotencode* layout encodes the first period or space in filenames
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    75
to prevent issues on OS X and Windows.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    76
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    77
This requirement is enabled by default when the *store* requirement
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    78
is enabled (which is the default behavior). It was introduced in
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    79
Mercurial 1.7 (released November 2010).
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    80
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    81
parentdelta
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
    82
===========
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    83
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    84
Denotes a revlog delta encoding format that was experimental and
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    85
replaced by *generaldelta*. It should not be seen in the wild because
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    86
it was never enabled by default.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    87
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    88
This requirement was added in Mercurial 1.7 and removed in Mercurial
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    89
1.9.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    90
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    91
generaldelta
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
    92
============
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    93
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    94
Revlogs should be created with the *generaldelta* flag enabled. The
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    95
generaldelta flag will cause deltas to be encoded against a parent
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    96
revision instead of the previous revision in the revlog.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    97
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    98
Support for this requirement was added in Mercurial 1.9 (released
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    99
July 2011). The requirement was disabled on new repositories by
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   100
default until Mercurial 3.7 (released February 2016).
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   101
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   102
manifestv2
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
   103
==========
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   104
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   105
Denotes that version 2 of manifests are being used.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   106
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   107
Support for this requirement was added in Mercurial 3.4 (released
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   108
May 2015). The requirement is currently experimental and is disabled
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   109
by default.
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   110
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   111
treemanifest
29747
aba2bb2a6d0f help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 28523
diff changeset
   112
============
28523
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   113
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   114
Denotes that tree manifests are being used. Tree manifests are
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   115
one manifest per directory (as opposed to a single flat manifest).
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   116
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   117
Support for this requirement was added in Mercurial 3.4 (released
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   118
August 2015). The requirement is currently experimental and is
045fe7042510 help: document requirements
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   119
disabled by default.