Differences between revisions 4 and 9 (spanning 5 versions)
Revision 4 as of 2008-01-04 12:56:36
Size: 370
Editor: abuehl
Comment: +cat
Revision 9 as of 2008-01-16 13:01:09
Size: 2300
Editor: abuehl
Comment: Multiple changesets may refer to the same manifest revision.
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 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''' 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.

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 [:Revlog: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 --debug manifest
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
...
}}}

Manifest

hg manifest

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.

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 [:Revlog: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 --debug manifest
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
...

See also: ["Design"]


CategoryCommand

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