A Scalable, User-Friendly Source Control System.
Go to file
Mark Thomas b6bdd61b72 treedirstate: sync all data and metadata when flushing
Summary:
When appending to the dirstate tree file, treedirstate flushes all data, and
then calls `sync_data` to ensure the data has made it to the disk.  This ought
to be sufficient, as the data won't be used until the dirstate file has been
updated to include the new root, which happens via atomic rename later on.

We've seen some cases where the dirstate file contains an invalid root id.
Attempt to mitigate this by syncing all data when we flush the dirstate.  There
is a performance penalty to this, but it shouldn't be too much.

Differential Revision: D7599547

fbshipit-source-id: 9d55b80d04833d2a73f058487a62eab2da802214
2018-04-13 21:51:54 -07:00
.cargo build: vendor in Rust dependencies 2018-01-09 17:48:32 -08:00
contrib xdiff: backport upstream changes 2018-04-13 21:51:48 -07:00
distutils_rust setup: build rust extensions in a shared directory 2018-04-13 21:51:49 -07:00
doc flake8: enable F821 check 2018-04-13 21:51:09 -07:00
hgdemandimport extensions: forbid "foo=" from importing foreign mercurial modules 2018-01-09 17:06:09 -08:00
hgext treedirstate: sync all data and metadata when flushing 2018-04-13 21:51:54 -07:00
hgext3rd extensions: also search for extension in the 'hgext3rd' package 2016-03-11 10:30:08 +00:00
hgsubversion flake8: resolve some F checks 2018-04-13 21:51:09 -07:00
i18n flake8: enable some E checks 2018-04-13 21:51:09 -07:00
lib hg: fix test-checks broken in windows treemanifest stack 2018-04-13 21:51:50 -07:00
lz4revlog lz4revlog: internalize extension and test 2018-01-03 07:15:33 -08:00
mercurial hg: remove bundlev1 from the supported outgoing versions 2018-04-13 21:51:53 -07:00
tests print the former bookmark target when removing bookmark 2018-04-13 21:51:54 -07:00
.clang-format clang-format: configuration for the clang-format source formatter 2015-01-24 17:04:25 -05:00
.editorconfig mercurial: add editorconfig 2016-04-05 18:10:33 +01:00
.flake8 flake8: enable some E checks 2018-04-13 21:51:09 -07:00
.gitignore hg: actually run the tests in fb/tests 2018-04-13 21:51:54 -07:00
.hg-vendored-crates build: vendor in Rust dependencies 2018-01-09 17:48:32 -08:00
.hgsigs Added signature for changeset f51ae48a3fd9 2017-12-01 13:49:47 -06:00
.jshintrc hgweb: add .jshintrc with some basic rules 2017-11-22 22:18:06 +08:00
.watchmanconfig watchman: add an empty .watchmanconfig 2018-04-13 21:50:54 -07:00
CONTRIBUTING contributing: add new file with a pointer to the wiki 2016-10-08 10:39:00 -04:00
CONTRIBUTORS Add note to CONTRIBUTORS file 2007-11-07 21:10:30 -06:00
COPYING COPYING: refresh with current address from fsf.org 2011-06-02 11:17:02 -05:00
hg dispatch: move initialization of sys.std* files 2017-10-02 07:18:24 +01:00
hgeditor spelling: trivial spell checking 2015-10-17 00:58:46 +02:00
hgweb.cgi urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
Makefile fbclone: add sparse stats output 2018-04-13 21:51:54 -07:00
README.rst doc: rename README to README.rst 2017-09-26 08:37:17 +02:00
setup.py hg: build fastmanifest on Windows 2018-04-13 21:51:51 -07: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

Running without installing::

 $ make local      # build for inplace usage
 $ ./hg --version  # should show the latest version

See https://mercurial-scm.org/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.