A Scalable, User-Friendly Source Control System.
Go to file
Jun Wu 15fe9250df dispatch: pre-import modules for chg service
Summary:
Pre-import modules so when they are imported by `extensions.py`, they will
get a cache hit.

Note: use a dict explicitly since it's much faster than re-`import`:

  In [2]: %timeit import hgext.rebase
  The slowest run took 13.43 times longer than the fastest. This could mean that an intermediate result is being cached.
  1000000 loops, best of 3: 444 ns per loop

  In [3]: d=sys.modules
  In [4]: %timeit d['hgext.rebase']
  10000000 loops, best of 3: 38 ns per loop

  In [7]: %timeit sys.modules['hgext.rebase']
  The slowest run took 31.89 times longer than the fastest. This could mean that an intermediate result is being cached.
  10000000 loops, best of 3: 67.3 ns per loop

Even importing two modules and constructing a tuple is 2.5x faster than directly
"import" one module:

  In [8]: %timeit (sys.modules['hgext.rebase'], sys.modules['hgext.absorb'])
  The slowest run took 10.78 times longer than the fastest. This could mean that an intermediate result is being cached.
  10000000 loops, best of 3: 177 ns per loop

Reviewed By: singhsrb

Differential Revision: D7840236

fbshipit-source-id: ca351c61ec63ffdaf401e561944e97963b434b3c
2018-05-08 17:02:22 -07:00
.cargo build: vendor in Rust dependencies 2018-01-09 17:48:32 -08:00
contrib remove eden-specific logic from scm-prompt.sh 2018-05-07 16:21:42 -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 fsmonitor: unlink fsmonitor.state before writing dirstate 2018-05-08 15:26:29 -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 fix pyflakes.t failure 2018-05-01 13:44:40 -07:00
lz4revlog lz4revlog: internalize extension and test 2018-01-03 07:15:33 -08:00
mercurial dispatch: pre-import modules for chg service 2018-05-08 17:02:22 -07:00
tests importer - make it ignore p4 reorgs 2018-05-04 13:36:28 -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 testing: no-op change 2018-04-24 12:36:19 -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.