Differences between revisions 4 and 24 (spanning 20 versions)
Revision 4 as of 2008-10-23 22:56:12
Size: 3136
Editor: abuehl
Comment: moving wire info up
Revision 24 as of 2013-09-01 04:54:40
Size: 428
Editor: GinoCKPH
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
'''fncache''' is a new repository layout (or format) for Mercurial that solves the following issues:

 * http://www.selenic.com/mercurial/bts/issue839 - Hg local store creates paths too long for Windows
 * http://www.selenic.com/mercurial/bts/issue793 - Can't clone repos that use Windows reserved names in paths

Status: in [http://selenic.com/repo/index.cgi/hg/rev/7946503ec76e main] and crew repos

With this change, all new repositories on all platforms will be fncache
repositories. You don't have to do anything (besides using a version
of Mercurial containing this change, which currently is in main code line
of Mercurial but has not yet been included in an official release).

'''The new layout does not affect the wire (or bundle) protocol(s)
in any way.''' So you can push/pull/clone over the wire to/from
any repo being in any layout using any Mercurial version on both
ends.

New repositories are for example created by non-hardlink cloning of
existing repos or if you clone over the wire (http, ssh).

For example, if you have a current non-fncache repo and you do
a local `clone --pull` you will end up with an fncache repo.
If you do a plain local clone (without `--pull`) of an existing
non-fncache repo, you will get a non-fncache repo with
hardlinks to the existing repo.

In short, use `clone --pull` to convert repos (in case you
want to convert repos to the fncache repo format, which will
almost never be needed).

Of course old versions of Mercurial will not be able to
read fncache repos. If you try to access an fncache repo
with an old version of Mercurial it will abort with:

{{{
abort: requirement 'fncache' not supported!
}}}

Which tells you that the repo at hand requires knowledge
of the fncache repo format in Mercurial.

(BTW, if, for whatever reason, the fnache file in the
repo becomes corrupted, you can do a `clone --pull` to rebuild
it. The fncache file contains a list of all revlog files
in the repo).

Existing non-fncache repositories will remain as they are,
as Mercurial will still be able to write and read non-fncache
repositories with this patch.

In current Mercurial there is already a hgrc option
`[format] usesstore` [1], which enables the current 'store' format,
which is the default in current Mercurial.

The "store" format encodes filenames with uppercase chars
'''X''' as '''_x''' (underbar + x). If you disable that, you will have to make
sure that the repo is only used on a platform that does not
fold case (that is, don't use or copy it to/on Windows).
The fncache repo layout is a descendant of the store
format, so if you disable the store format you implicitly
disable the fncache layout.

With the patch as it is, there is currently no option to
disable the fncache layout for new repos (as a hackaround,
you can manually remove the 'fncache' entry in the requires
file after hg init). You can only disable the 'store' format,
which implicitly disables fncache too. But there is no
separate option to only disable 'fncache' and keep 'store'.

[1] http://www.selenic.com/mercurial/hgrc.5.html#format
Greetings! I am Todd and I [[http://www.yourdictionary.com/tremendously|tremendously]] love this name.<<BR>>
<<BR>>
My house is now in Iowa. I am really fond of cinema but I can't to become my profession really.http://farm2.staticflickr.com/1243/1359129671_9eca6c2ca7.jpg After being out of a good job for years I came to be an administrative assistant. You can get a hold of my website here: http://6000amonthclubincome.com

Greetings! I am Todd and I tremendously love this name.

My house is now in Iowa. I am really fond of cinema but I can't to become my profession really.http://farm2.staticflickr.com/1243/1359129671_9eca6c2ca7.jpg After being out of a good job for years I came to be an administrative assistant. You can get a hold of my website here: http://6000amonthclubincome.com

fncacheRepoFormat (last edited 2014-02-19 22:09:21 by mpm)