A Scalable, User-Friendly Source Control System.
Go to file
Durham Goode 832a191f75 dirstate: track otherparent files same as nonnormal
Calling dirstate.setparents() is expensive in a large repo because it iterates
over every file in the dirstate. It does so to undo any merge state or
otherparent state files. Merge state files are already covered by
dirstate._nonnormalset, so we just need to track otherparent files in a similar
manner to avoid the full iteration here.

Fixing this shaves 20-25% off histedit in large repos.

I tested this by adding temporary debug logic to verify that the old files
processed in the loop matched the new files processed in the loop and running
the test suite.
2017-03-08 17:35:20 -08:00
contrib vfs: use 'vfs' module directly in 'contrib/undumprevlog' 2017-03-02 13:32:49 +01:00
doc ui: factor out ui.load() to create a ui without loading configs (API) 2016-10-22 14:35:10 +09:00
hgext vfs: use 'vfs' module directly in 'hgext.largefile' 2017-03-02 13:32:27 +01:00
hgext3rd extensions: also search for extension in the 'hgext3rd' package 2016-03-11 10:30:08 +00:00
i18n i18n-pt_BR: synchronized with 11b8e606c473 2017-03-02 11:08:20 -03:00
mercurial dirstate: track otherparent files same as nonnormal 2017-03-08 17:35:20 -08:00
tests test: end printed diff "hunks" with an empty string in test-context.py 2017-03-03 16:17:17 +01:00
.editorconfig mercurial: add editorconfig 2016-04-05 18:10:33 +01:00
.hgignore perf: add asv benchmarks 2016-09-29 10:16:34 +02:00
.hgsigs Added signature for changeset dcc2d404963a 2017-03-02 20:19:45 -05: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 hg: disable demandimport for py3 2016-05-11 23:24:41 +00: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 misc: replace domain of mercurial-devel ML address by mercurial-scm.org 2017-02-11 00:23:55 +09:00
README urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
setup.py misc: update year in copyright lines 2017-02-12 02:23:33 +09: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.