Differences between revisions 7 and 15 (spanning 8 versions)
Revision 7 as of 2008-01-13 10:56:02
Size: 2149
Editor: abuehl
Comment: partial insert from Design page
Revision 15 as of 2013-11-07 02:08:31
Size: 3846
Comment: Details about format of manifest file.
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
The '''manifest''' is the file that describes the contents of the ["Repository"] at a particular ["ChangeSetID"]. It primarily contains a list of file names and ["Revision"]s of those files that are present. The manifest ID identifies the version of the manifest that goes with a particular changeset. The '''manifest''' is the file that describes the contents of the
[[Repository|repository]] at a particular [[ChangeSetID|changeset ID]].
It primarily contains a list of file names and [[Revision|revisions]] of
those files that are present. The manifest ID identifies the version of
the manifest that goes with a particular [[ChangeSet|changeset]].
The manifest ID is a [[Nodeid|nodeid]]. Multiple changesets may refer to
the same manifest revision.
Line 10: Line 16:
file versions from their revlogs. The manifest is conceptually a file versions from their [[Revlog|revlogs]]. The manifest is conceptually a
Line 12: Line 18:
project history -- are stored in a revlog (see the file project history, are stored in a revlog (see the file
Line 16: Line 22:
{{{
$ hg debugdata --manifest 10
.hgignore 708b3e37a5d2b260e303a6d8c0386ca0c18bf41d
MANIFEST.in ecf027f3b56bf7fadf8e3dd75cfcd67d8b58deb1
PKG-INFO 9b3ed8f2b81095a13064402e930565f083346e9a
README d6f7553376154241dea40dc2af96a8b357f0e991
hg 06763db6de79098e8cdf14726ca506fdf16749be
mercurial/__init__.py b80de5d138758541c5f05265ad144ab9fa86d1db
mercurial/byterange.py 17f5a9fbd99622f31a392c33ac1e903925dc80ed
mercurial/fancyopts.py b6f52e23e356748c5039313d8b639cda16bf67ba
mercurial/hg.py 1890959ebcf6b06e3e932e5e47bb35eeb30ea2ed
mercurial/mdiff.py a05f65c44bfbeec6a42336cd2ff0b30217899ca3
mercurial/revlog.py edd628e83c50e15004dce0207aaab63f8ceb8c97
mercurial/transaction.py 9d180df101dc14ce3dd582fd998b36c98b3e39aa
notes.txt 703afcec5edb749cf5cec67831f554d6da13f2fb
setup.py ccf3f6daf0f13101ca73631f7a1769e328b472c9
tkmerge 3c922edb43a9c143682f7bc7b00f98b3c756ebe7
Line 17: Line 40:
}}}

The above command displays the actual contents of the manifest revision 10.

The manifest includes one line for each tracked file. Note that the two fields in each line are separated by ''null character'' ('\0'), not a space. Also note that ''every line'' ends in a linefeed ('\n'), including the last line.

hg also offers a ''manifest'' command which displays all of the tracked files in the current revision:
Line 19: Line 49:
a240bca3a32747c68c413e090d94fb8d8b7945d1 644 .hgignore
64903d6bc1681739840d3180b984fff3526001ab 644 .hgtags
ea694a28b9b10803b7708cdf43f56f2589078b52 644 CONTRIBUTORS
5ac863e17c7035f1d11828d848fb2ca450d89794 644 COPYING
246219e9cd134000b910f65f395f3d60f66719b9 644 MANIFEST.in
e81018fed6bda3460c37dfc046d6601b10dbb201 644 Makefile
615e66a1a3b9580a06834fdd3470d1fc58d3bde5 644 PKG-INFO
a903ec460ca828fa8b7c4ca8f3abb97e6697457d 644 README
b0166ba7a8977756db92a88634da162844af978f 644 comparison.txt
b5bb77bceabd6932eacb0dae5a060dee0b6c70d3 644 contrib/bash_completion
5ca6d79f9a1d5e328de9adc65bc850ab771cf927 755 contrib/buildrpm
cc9ffe9f086735501b0baa207360d4478fd491d5 755 contrib/convert-repo
78f7c038716f258f451528e1e8241d895419f2ee 644 contrib/git-viz/git-cat-file
78f7c038716f258f451528e1e8241d895419f2ee 644 contrib/git-viz/git-diff-tree
78f7c038716f258f451528e1e8241d895419f2ee 644 contrib/git-viz/git-rev-list
78f7c038716f258f451528e1e8241d895419f2ee 644 contrib/git-viz/git-rev-tree
b58aa4c0ea58bb671532171ac4a2cd5957661531 644 contrib/git-viz/hg-viz
9d5ecbd3177e2cd88b9202e4fc27c60d410eae25 755 contrib/hgit
e46eccf6b286bbfeb0547f4940ada1aa5f6305ab 755 contrib/hgk
44754b8b0fc10af6beb2e369e1ab9049f45367ba 644 .hgignore
16eb79a9f9f03fb89bcc4dc33446f11d43091674 644 .hgsigs
b76e3114c5fecfa319d62a3aaef06eeab82e193b 644 .hgtags
7c8afb9501740a450c549b4b1f002c803c45193a 644 CONTRIBUTORS
5ac863e17c7035f1d11828d848fb2ca450d89794 644 COPYING
1c2110687d65b7448b73c4a4c7c4b28f957eaf21 644 Makefile
e4907aefc8dd5710417fb9887099a83fc14f7749 644 README
73870a44b18b40b153acba2ed238d4bd305902c2 644 contrib/bash_completion
fd3294ffa3b6095ec4b77f88241f468891324dab 755 * contrib/buildrpm
dc0c4b232a1d0b5ec4f6c87f020c664b69b6cca8 755 * contrib/convert-repo
2956444ba8a357c730fb3e9801c3d054351894f2 644 contrib/dumprevlog
78f7c038716f258f451528e1e8241d895419f2ee 644 contrib/git-viz/git-cat-file
78f7c038716f258f451528e1e8241d895419f2ee 644 contrib/git-viz/git-diff-tree
78f7c038716f258f451528e1e8241d895419f2ee 644 contrib/git-viz/git-rev-list
78f7c038716f258f451528e1e8241d895419f2ee 644 contrib/git-viz/git-rev-tree
b58aa4c0ea58bb671532171ac4a2cd5957661531 644 contrib/git-viz/hg-viz
70ceb076d0e3e8d1b688d726d55ef00402d92ddc 755 * contrib/hg-relink
2943e43127ba9d2e2bdd4627a36787d0b56b5e6b 755 * contrib/hg-ssh
560cd9ba449052f0222402155ea1d7f8bb0f87d2 755 * contrib/hgdiff
1f9e835e1be5a6fb1b781b3be18967231bdb18a9 755 * contrib/hgk
Line 41: Line 72:
See also: ["Design"] Help text: http://www.selenic.com/mercurial/hg.1.html#manifest

See also: [[Design]]
Line 43: Line 76:
CategoryCommand CategoryCommand CategoryInternals

[[FrenchManifest|Français]]

Manifest

hg manifest

The manifest is the file that describes the contents of the repository at a particular changeset ID. It primarily contains a list of file names and revisions of those files that are present. The manifest ID identifies the version of the manifest that goes with a particular changeset. The manifest ID is a nodeid. Multiple changesets may refer to the same manifest revision.

A manifest describes the state of a project by listing each file and its nodeid to specify which version. Recreating a particular state means simply looking up its manifest and reconstructing the listed file versions from their revlogs. The manifest is conceptually a file. All of its versions, which collectively represent the entire project history, are stored in a revlog (see the file .hg/store/00manifest.d) and an associated index (.hg/store/00manifest.i).

A manifest looks something like this:

$ hg debugdata --manifest 10
.hgignore 708b3e37a5d2b260e303a6d8c0386ca0c18bf41d
MANIFEST.in ecf027f3b56bf7fadf8e3dd75cfcd67d8b58deb1
PKG-INFO 9b3ed8f2b81095a13064402e930565f083346e9a
README d6f7553376154241dea40dc2af96a8b357f0e991
hg 06763db6de79098e8cdf14726ca506fdf16749be
mercurial/__init__.py b80de5d138758541c5f05265ad144ab9fa86d1db
mercurial/byterange.py 17f5a9fbd99622f31a392c33ac1e903925dc80ed
mercurial/fancyopts.py b6f52e23e356748c5039313d8b639cda16bf67ba
mercurial/hg.py 1890959ebcf6b06e3e932e5e47bb35eeb30ea2ed
mercurial/mdiff.py a05f65c44bfbeec6a42336cd2ff0b30217899ca3
mercurial/revlog.py edd628e83c50e15004dce0207aaab63f8ceb8c97
mercurial/transaction.py 9d180df101dc14ce3dd582fd998b36c98b3e39aa
notes.txt 703afcec5edb749cf5cec67831f554d6da13f2fb
setup.py ccf3f6daf0f13101ca73631f7a1769e328b472c9
tkmerge 3c922edb43a9c143682f7bc7b00f98b3c756ebe7

The above command displays the actual contents of the manifest revision 10.

The manifest includes one line for each tracked file. Note that the two fields in each line are separated by null character ('\0'), not a space. Also note that every line ends in a linefeed ('\n'), including the last line.

hg also offers a manifest command which displays all of the tracked files in the current revision:

$ hg --debug manifest
44754b8b0fc10af6beb2e369e1ab9049f45367ba 644   .hgignore
16eb79a9f9f03fb89bcc4dc33446f11d43091674 644   .hgsigs
b76e3114c5fecfa319d62a3aaef06eeab82e193b 644   .hgtags
7c8afb9501740a450c549b4b1f002c803c45193a 644   CONTRIBUTORS
5ac863e17c7035f1d11828d848fb2ca450d89794 644   COPYING
1c2110687d65b7448b73c4a4c7c4b28f957eaf21 644   Makefile
e4907aefc8dd5710417fb9887099a83fc14f7749 644   README
73870a44b18b40b153acba2ed238d4bd305902c2 644   contrib/bash_completion
fd3294ffa3b6095ec4b77f88241f468891324dab 755 * contrib/buildrpm
dc0c4b232a1d0b5ec4f6c87f020c664b69b6cca8 755 * contrib/convert-repo
2956444ba8a357c730fb3e9801c3d054351894f2 644   contrib/dumprevlog
78f7c038716f258f451528e1e8241d895419f2ee 644   contrib/git-viz/git-cat-file
78f7c038716f258f451528e1e8241d895419f2ee 644   contrib/git-viz/git-diff-tree
78f7c038716f258f451528e1e8241d895419f2ee 644   contrib/git-viz/git-rev-list
78f7c038716f258f451528e1e8241d895419f2ee 644   contrib/git-viz/git-rev-tree
b58aa4c0ea58bb671532171ac4a2cd5957661531 644   contrib/git-viz/hg-viz
70ceb076d0e3e8d1b688d726d55ef00402d92ddc 755 * contrib/hg-relink
2943e43127ba9d2e2bdd4627a36787d0b56b5e6b 755 * contrib/hg-ssh
560cd9ba449052f0222402155ea1d7f8bb0f87d2 755 * contrib/hgdiff
1f9e835e1be5a6fb1b781b3be18967231bdb18a9 755 * contrib/hgk
...

Help text: http://www.selenic.com/mercurial/hg.1.html#manifest

See also: Design


CategoryCommand CategoryInternals

Français

Manifest (last edited 2013-11-07 02:08:31 by MaytagMetalark)