bundlespec.txt
121 lines
| 3.7 KiB
| text/plain
|
TextLexer
Matt Harbison
|
r44031 | Mercurial supports generating standalone "bundle" files that hold repository | ||
data. These "bundles" are typically saved locally and used later or exchanged | ||||
between different repositories, possibly on different machines. Example | ||||
commands using bundles are :hg:`bundle` and :hg:`unbundle`. | ||||
Generation of bundle files is controlled by a "bundle specification" | ||||
("bundlespec") string. This string tells the bundle generation process how | ||||
to create the bundle. | ||||
A "bundlespec" string is composed of the following elements: | ||||
type | ||||
A string denoting the bundle format to use. | ||||
compression | ||||
Denotes the compression engine to use compressing the raw bundle data. | ||||
parameters | ||||
Arbitrary key-value parameters to further control bundle generation. | ||||
A "bundlespec" string has the following formats: | ||||
<type> | ||||
The literal bundle format string is used. | ||||
<compression>-<type> | ||||
The compression engine and format are delimited by a hyphen (``-``). | ||||
Optional parameters follow the ``<type>``. Parameters are URI escaped | ||||
``key=value`` pairs. Each pair is delimited by a semicolon (``;``). The | ||||
first parameter begins after a ``;`` immediately following the ``<type>`` | ||||
value. | ||||
Available Types | ||||
=============== | ||||
The following bundle <type> strings are available: | ||||
v1 | ||||
Produces a legacy "changegroup" version 1 bundle. | ||||
This format is compatible with nearly all Mercurial clients because it is | ||||
the oldest. However, it has some limitations, which is why it is no longer | ||||
the default for new repositories. | ||||
``v1`` bundles can be used with modern repositories using the "generaldelta" | ||||
storage format. However, it may take longer to produce the bundle and the | ||||
resulting bundle may be significantly larger than a ``v2`` bundle. | ||||
``v1`` bundles can only use the ``gzip``, ``bzip2``, and ``none`` compression | ||||
formats. | ||||
v2 | ||||
Produces a version 2 bundle. | ||||
Version 2 bundles are an extensible format that can store additional | ||||
repository data (such as bookmarks and phases information) and they can | ||||
store data more efficiently, resulting in smaller bundles. | ||||
Version 2 bundles can also use modern compression engines, such as | ||||
``zstd``, making them faster to compress and often smaller. | ||||
Available Compression Engines | ||||
============================= | ||||
The following bundle <compression> engines can be used: | ||||
.. bundlecompressionmarker | ||||
Mathias De Mare
|
r51538 | The compression engines can be prepended with ``stream`` to create a streaming bundle. | ||
These are bundles that are extremely efficient to produce and consume, | ||||
but do not have guaranteed compatibility with older clients. | ||||
r50304 | Available Options | |||
================= | ||||
The following options exist: | ||||
changegroup | ||||
Include the changegroup data in the bundle (default to True). | ||||
cg.version | ||||
Select the version of the changegroup to use. Available options are : 01, 02 | ||||
or 03. By default it will be automatically selected according to the current | ||||
repository format. | ||||
obsolescence | ||||
Include obsolescence-markers relevant to the bundled changesets. | ||||
phases | ||||
Include phase information relevant to the bundled changesets. | ||||
revbranchcache | ||||
Include the "tags-fnodes" cache inside the bundle. | ||||
tagsfnodescache | ||||
Include the "tags-fnodes" cache inside the bundle. | ||||
Matt Harbison
|
r44031 | Examples | ||
======== | ||||
``v2`` | ||||
Produce a ``v2`` bundle using default options, including compression. | ||||
``none-v1`` | ||||
Produce a ``v1`` bundle with no compression. | ||||
``zstd-v2`` | ||||
Produce a ``v2`` bundle with zstandard compression using default | ||||
settings. | ||||
``zstd-v1`` | ||||
This errors because ``zstd`` is not supported for ``v1`` types. | ||||
Mathias De Mare
|
r51538 | |||
``none-streamv2`` | ||||
Produce a ``v2`` streaming bundle with no compression. | ||||
``zstd-v2;obsolescence=true;phases=true`` | ||||
Produce a ``v2`` bundle with zstandard compression which includes | ||||
obsolescence markers and phases. | ||||