A Scalable, User-Friendly Source Control System.
Go to file
Jun Wu af62797cf3 treestate: improve aggregated_state correctness and usability
Summary:
Previously, `aggregated_state` is only a union of bit flags. It makes
querying files with rare bits fast. But it cannot help with common bits.

This diff adds an `intersection` field, so both "having rare bits", and
"not having common bits" can be queried efficiently.

As we're here, use an explicit `None` to represent "need re-calculation",
instead of using `is_empty()`. This makes the code easier to reason about.
It also solves an issue in `add` that is caught by the next test.

Reviewed By: markbt

Differential Revision: D7886281

fbshipit-source-id: 4ce395883ea26ea9b33794e03c792ea157dc21d0
2018-05-23 06:12:46 -07:00
.cargo build: vendor in Rust dependencies 2018-01-09 17:48:32 -08:00
contrib Move hgext/fsmonitor/pywatchman/ to hgext/extlib/pywatchman/ 2018-05-15 12:06:47 -07:00
distutils_rust setup: remove Cargo.lock automatically 2018-04-21 03:42:58 -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 treestate: change Key from Vec<u8> to Box<[u8]> 2018-05-23 06:12:45 -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 treestate: improve aggregated_state correctness and usability 2018-05-23 06:12:46 -07:00
lz4revlog lz4revlog: internalize extension and test 2018-01-03 07:15:33 -08:00
mercurial posix: improve error message about broken symlinks 2018-05-23 06:12:45 -07:00
tests posix: improve error message about broken symlinks 2018-05-23 06:12:45 -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 cleanup: remove Cargo.lock from check-in 2018-04-21 03:42:58 -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 chg: use a separate entry point 2018-05-08 17:02:22 -07: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 make: use homebrew python path when available 2018-04-27 11:19:28 -07:00
README.rst doc: rename README to README.rst 2017-09-26 08:37:17 +02:00
setup.py Split out a new hgevents extension from fsmonitor. 2018-05-21 09:30:28 -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.