A Scalable, User-Friendly Source Control System.
Go to file
Gregory Szorc b4b2d140d9 statichttprepo: implement wlock() (issue5613)
statichttprepo inherits from localrepository. In doing so, it
obtains default implementations of various methods, like wlock().

Before this change, tags cache writing would call repo.wlock().
This failed on statichttprepo due to localrepository's wlock()
looking for an instance attribute that doesn't exist on statichttprepo
(statichttprepo doesn't call localrepository.__init__).

We /could/ define missing attributes until the base wlock() works.
However, a statichttprepo is remote and read-only and can't be
locked. The class already has a lock() that short circuits. So
it makes sense to implement a short-circuited wlock() as well. That
is what this patch does.

LockError is expected to be raised when locking fails. The constructor
takes a number of arguments that are local repository centric. Rather
than rework LockError to not require them (which would not be
appropriate for stable), this commit populates dummy values. I don't
believe they'll ever be seen by the user, as lock failures on
static http repos should be limited to well-defined (and tested)
scenarios. We can and should revisit the LockError type to improve
this.
2017-07-29 12:50:56 -07:00
contrib phabricator: convert unicode to binary when writing patches 2017-07-27 12:03:01 -07:00
doc doc: port check-seclevel.py to be Python 2/3 portable 2017-05-28 15:51:26 -04:00
hgdemandimport demandimport: prefer loaded module over package attribute (issue5617) 2017-07-16 17:38:39 +09:00
hgext commitextras: make sure keys contains ascii letters, numbers, '_' and '-' only 2017-07-28 07:42:55 +05:30
hgext3rd extensions: also search for extension in the 'hgext3rd' package 2016-03-11 10:30:08 +00:00
i18n merge with stable 2017-07-05 11:55:26 -04:00
mercurial statichttprepo: implement wlock() (issue5613) 2017-07-29 12:50:56 -07:00
tests statichttprepo: implement wlock() (issue5613) 2017-07-29 12:50:56 -07:00
.editorconfig mercurial: add editorconfig 2016-04-05 18:10:33 +01:00
.hgignore merge with stable 2017-06-24 15:50:13 -04:00
.hgsigs Added signature for changeset c586a74f81b3 2017-07-19 07:58:03 -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 init: turn on demandimport for Python 3.6 and above 2017-05-21 12:51:01 -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 makefile: build on CentOS 6 with a Python 2.7 2017-07-27 14:15:26 +02:00
README urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
setup.py setup: silence warning of unknown option python_requires on distutils 2017-07-27 23:15:14 +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.