A Scalable, User-Friendly Source Control System.
Go to file
Jun Wu e7a89e8c45 spanset: make Span a dedicated type
Summary:
Use a dedicated Span type so we can enforce reverse ordering and `start <= end`
directly on the Span structure.

The constructor of `SpanSet` becomes more expensive because it recreates the
`Vec`, and sorts it. Practically, hopefully it's fine. Internal logic like union will
not use that constructor.

Some comments and tweaks have been made to make the code easier to read.

There are some performance changes, though:

Before:

  intersection                    5.030 ms
  union                           5.920 ms
  difference                      4.804 ms

After:

  intersection                    6.036 ms
  union                           5.426 ms
  difference                      4.710 ms

`intersection` becomes slower, while `union` and `difference` become a bit faster.
Hopefully the regression is within the acceptable range.

Reviewed By: sfilipco

Differential Revision: D15023651

fbshipit-source-id: ea7845d5d20faf204cfb85c66fc3bd6e25c9fc0c
2019-04-25 17:05:11 -07:00
contrib setup: rebuild libchg.a if versionhash has changed 2019-03-21 11:23:56 -07:00
distutils_rust distutils_rust: fix typo in error message 2019-03-27 15:37:39 -07:00
doc gendoc: import extensions properly 2019-01-30 14:57:42 -08:00
edenscm fix used before assignment error 2019-04-25 10:25:44 -07:00
exec Update to zstd-1.4.x 2019-04-23 22:41:55 -07:00
i18n codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
lib spanset: make Span a dedicated type 2019-04-25 17:05:11 -07:00
newdoc newdoc: revise WritingExtensions 2019-03-14 11:51:39 -07:00
slides slides: recompile with newer tex toolchain 2019-04-18 13:50:03 -07:00
tests test-log-dir: fix the test by avoiding case collisions 2019-04-25 11:27:58 -07:00
.editorconfig move scm/hg/.clang-format to scm/hg/mercurial/ 2018-05-25 14:35:51 -07:00
.flake8 codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
.gitignore ignore: stop using "{}" patterns 2019-02-06 13:02:59 -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
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
gen_version.py generate __version__.py during the buck build 2018-06-25 15:52:25 -07:00
hg codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
hgeditor spelling: trivial spell checking 2015-10-17 00:58:46 +02:00
hgweb.cgi codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
Makefile chg: remove the ability to produce an actual binary 2019-03-14 06:35:45 -07:00
README.rst doc: rename README to README.rst 2017-09-26 08:37:17 +02:00
setup.py setup: clean up stale Cargo.lock automatically 2019-04-25 12:52:23 -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.