A Scalable, User-Friendly Source Control System.
Go to file
Adrian Buehlmann 9638578b5c fncachestore: copy dh directory before the manifest
Before this patch, the copy order on clone was:

  requires
  00changelog.i
  store\data
  store\00manifest.d
  store\00manifest.i
  store\00changelog.d
  store\00changelog.i
  store\dh
  store\fncache

Which provides a theoretical non-zero probability of a race during clone where
a very early reader might see a repository with missing revlog files if it sees
00changelog.i before all files inside dh have been copied.

The dh directory is similar to the data directory -- just for files with long
names (which are hashed). The manifest refers to files in data *and* dh, so dh
should be copied before the manifest.

This patch improves the copy order to:

  requires
  00changelog.i
  store\data
  store\dh
  store\fncache
  store\00manifest.d
  store\00manifest.i
  store\00changelog.d
  store\00changelog.i

I'm putting fncache to before the manifest while I'm at it, since fncache
provides a mechanism to enumerate all repository files without visiting the
manifest revisions. fncache depends only on data and dh.

Note that data must be copied first, since copying data triggers the creation
of the repository write lock in the destination repo (see hg.clone).
2010-12-17 10:40:26 +01:00
contrib wix: allow x86 MSI packages to be installed on x64 systems 2010-11-26 20:05:16 -06:00
doc hgrc.5: expand introduction for [web] section 2010-12-01 10:52:31 +01:00
hgext eol: improve help on whether EOLs are changed in working copy or repository 2010-11-22 14:36:57 +01:00
i18n i18n-da: synchronize with 3161970145e5 2010-12-10 12:48:57 +01:00
mercurial fncachestore: copy dh directory before the manifest 2010-12-17 10:40:26 +01:00
tests https: warn when server certificate isn't verified 2010-12-18 21:58:52 +01:00
.hgignore Ignore mercurial.egg-info build output 2010-06-18 10:45:40 -07:00
.hgsigs Added signature for changeset 3bfdb3ab811e 2010-12-01 18:46:20 -06:00
CONTRIBUTORS Add note to CONTRIBUTORS file 2007-11-07 21:10:30 -06:00
COPYING Add COPYING 2005-06-17 09:32:13 -08:00
hg setup/hg: handle hg being a symlink when appending relative libdir to sys.path 2010-10-21 09:58:22 -07:00
hgeditor Fixed a bashism with the use of $RANDOM in hgeditor. 2010-05-19 18:06:35 +02:00
hgweb.cgi *: add executable bit to a few files that were missing it. 2010-10-26 12:18:37 +02:00
Makefile i18n: extract docstrings from revset module 2010-10-26 23:07:14 -02:00
README README: add small introduction 2010-10-27 12:05:37 +02:00
setup.py *: kill all unnecessary shebangs. 2010-10-26 12:18:39 +02:00

Mercurial
=========

Mercurial is a fast, easy to use, distributed revision control tool
for software developers.

Basic install:

 $ make            # see install targets
 $ make install    # do a system-wide install
 $ hg debuginstall # sanity-check setup
 $ hg              # see help

See http://mercurial.selenic.com/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.