A Scalable, User-Friendly Source Control System.
Go to file
Jun Wu c363f01ef4 extensions: add unwrapfunction to undo wrapfunction
Before this patch, we don't have a safe way to undo a wrapfunction because
other extensions may wrap the same function and calling setattr will undo
them accidentally.

This patch adds an "unwrapfunction" to address the issue. It removes the
wrapper from the wrapper chain, and re-wraps everything, which is not the
most efficient but short and easy to understand. We can revisit the code
if we have perf issues with long chains.

The "undo" feature is useful in cases like wrapping a function just in a
scope. Like, having a "select" command to interactively (using arrow keys)
select content from some output (ex. smartlog). It could wrap "ui.label" to
extract interesting texts just in the "select" command.
2016-08-10 16:27:33 +01:00
contrib py3: make check-py3-compat.py use correct module name at loading pure modules 2016-08-09 02:28:34 +09:00
doc doc: remove double imports of inspect from hgmanpage.py 2016-05-14 14:37:25 +09:00
hgext journal: take wlock for writting the 'shared' file 2016-08-08 18:05:10 +02:00
hgext3rd extensions: also search for extension in the 'hgext3rd' package 2016-03-11 10:30:08 +00:00
i18n i18n: use inspect.getsourcelines() to obtain lineno from func or class 2016-07-27 21:53:14 +09:00
mercurial extensions: add unwrapfunction to undo wrapfunction 2016-08-10 16:27:33 +01:00
tests extensions: add unwrapfunction to undo wrapfunction 2016-08-10 16:27:33 +01:00
.editorconfig mercurial: add editorconfig 2016-04-05 18:10:33 +01:00
.hgignore make: turn ubuntu docker into template 2016-04-26 23:33:17 -07:00
.hgsigs Added signature for changeset f19241339f58 2016-08-01 12:37:25 -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 make: introduce a target to clean everything but packages 2016-07-29 00:39:59 +02:00
README urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
setup_osutil_cffi.py osutil: add darwin-only version of os.listdir using cffi 2016-07-11 11:05:08 +02:00
setup.py mpatch: write a cffi version of mpatch.patches 2016-07-25 15:10:52 +02: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.