A Scalable, User-Friendly Source Control System.
Go to file
Durham Goode c93b79c0e6 dirstate: track updated files to improve write time
Previously, dirstate.write() would iterate over the entire dirstate to find any
entries that needed to be marked 'lookup' (i.e. if they have the same timestamp
as now). This was O(working copy) and slow in large repos. It was most visible
when rebasing or histediting multiple commits, since it gets executed once per
commit, even if the entire rebase/histedit is wrapped in a transaction.

The fix is to track which files have been editted, and only check those to see
if they need to be marked as 'lookup'. This saves 25% on histedit times in very
large repositories.

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-05 16:20:07 -08:00
contrib config: update the Windows example config file 2017-02-28 20:23:10 +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 hgk: set a blocked tag when the user invokes view 2017-03-06 03:27:52 -08: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 updated files to improve write time 2017-03-05 16:20:07 -08:00
tests revert: always display hunks reversed when reverting to parent 2017-03-06 14:11:21 +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 osx: install bash and zsh completions by default 2017-02-06 15:19:32 -05: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.