Differences between revisions 14 and 15
Revision 14 as of 2010-10-22 18:54:26
Size: 1816
Editor: abuehl
Comment:
Revision 15 as of 2010-10-22 19:21:36
Size: 2102
Editor: abuehl
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
repository formats.  repository formats.
Line 30: Line 30:
The requires file only describes the format of the persistent representation of a repository on
disk or backup media. Which is completely unrelated to how this information is transferred
over the [[WireProtocol|wire]] (for example, when pushing and pulling).
Line 32: Line 36:
 * `store`
 
The directory `.hg/store` contains the subdirectories `data` (see CaseFoldingPlan)
 * `revlogv1`
[[RevlogNG]] is used.
 * `fncache`
   store files are named to work around Windows limitations described in [[fncacheRepoFormat]].
 * `dotencode`
   Leading '.' (period) or ' ' (space) in store filenames are encoded
(see [[http://selenic.com/repo/hg/rev/34d8247a4595|34d8247a4595]], appears in 1.7).
 || `store` || The directory `.hg/store` contains the subdirectories `data` (see CaseFoldingPlan) ||
 || `revlogv1` || [[RevlogNG]] is used. ||
 || `fncache`  || store files are named to work around Windows limitations described in [[fncacheRepoFormat]]. ||
 || `dotencode` || Leading '.' (period) or ' ' (space) in store filenames are encoded<<BR>> (see [[http://selenic.com/repo/hg/rev/34d8247a4595|34d8247a4595]], appears in 1.7). ||

Requires File

The requires file is a file inside the repository which is used to describe the general format and layout of the repository. This provides a basic mechanism for introducing new repository formats.

1. Details

Starting with Mercurial version 0.9.2 there is a file .hg/requires which specifies the capabilities needed by a client to access this repository. It is a text file, where each line contains the name of a capability and optionally (separated by a = character from the name) a list of parameters, each separated by a comma (,).

Currently there are only capabilities which don't need parameters.

If an older Mercurial version tries to access a repository that was created by a newer Mercurial version, and error message like

abort: requirement 'fncache' not supported!

may be displayed, which means the Mercurial version used to access that repository doesn't know how to interpret it, because accessing it would require knowledge about the 'fncache' capability.

If such an error message appears, a newer Mercurial version must be used to access the repository or the repository must be converted to an older format understood by that version.

The requires file only describes the format of the persistent representation of a repository on disk or backup media. Which is completely unrelated to how this information is transferred over the wire (for example, when pushing and pulling).

2. Known capabilities

  • store

    The directory .hg/store contains the subdirectories data (see CaseFoldingPlan)

    revlogv1

    RevlogNG is used.

    fncache

    store files are named to work around Windows limitations described in fncacheRepoFormat.

    dotencode

    Leading '.' (period) or ' ' (space) in store filenames are encoded
    (see 34d8247a4595, appears in 1.7).

3. See also


CategoryInternals

RequiresFile (last edited 2013-09-13 22:34:47 by mpm)