A Scalable, User-Friendly Source Control System.
Go to file
Angel Ezquerra 586f53ce9d subrepo: append subrepo path to subrepo error messages
This change appends the subrepo path to subrepo errors. That is, when there
is an error performing an operation a subrepo, rather than displaying a message
such as:

pushing subrepo MYSUBREPO to PATH
searching for changes
abort: push creates new remote head HEADHASH!
hint: did you forget to merge? use push -f to force

mercurial will show:

pushing subrepo MYSUBREPO to PATH
searching for changes
abort: push creates new remote head HEADHASH! (in subrepo MYSUBREPO)
hint: did you forget to merge? use push -f to force

The rationale for this change is that the current error messages make it hard
for TortoiseHg (and similar tools) to tell the user which subrepo caused the
push failure.

The "(in subrepo MYSUBREPO)" message has been added to those subrepo methods
were it made sense (by using a decorator). We avoid appending "(in subrepo XXX)"
multiple times when subrepos are nexted by throwing a "SubrepoAbort" exception
after the extra message is appended. The decorator will then "ignore" (i.e. just
re-raise) the exception and never add the message again.

A small drawback of this method is that part of the exception trace is lost when
the exception is catched and re-raised by the annotatesubrepoerror decorator.

Also, because the state() function already printed the subrepo path when it
threw an error, that error has been changed to avoid duplicating the subrepo
path in the error message.

Note that I have also updated several subrepo related tests to reflect these
changes.
2012-12-13 23:37:53 +01:00
contrib ancestor: add lazy membership testing to lazyancestors 2012-12-18 12:47:20 -08:00
doc check-code: there must also be whitespace between ')' and operator 2012-12-09 23:33:16 +01:00
hgext inotify: on Python < 2.6, socket.error lacks errno 2012-12-20 11:40:04 -08:00
i18n i18n-ja: synchronized with a0dc97a53c9f 2012-11-30 21:39:01 +09:00
mercurial subrepo: append subrepo path to subrepo error messages 2012-12-13 23:37:53 +01:00
tests subrepo: append subrepo path to subrepo error messages 2012-12-13 23:37:53 +01:00
.hgignore exewrapper: adapt for legacy HackableMercurial 2012-08-07 11:04:41 +02:00
.hgsigs Added signature for changeset 044fc8ab2b5e 2012-12-03 14:03:57 -06: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 rename util.set_binary to setbinary 2011-05-06 15:25:35 +02:00
hgeditor Fixed a bashism with the use of $RANDOM in hgeditor. 2010-05-19 18:06:35 +02:00
hgweb.cgi mq: add a warning about uncommitted changes for qfinish 2011-11-10 15:40:34 -06:00
Makefile makefile: allow local builds to work on windows/mingw32 2012-12-11 13:44:00 -08:00
README readme: mention how to run in-place 2012-03-02 21:43:55 +02:00
setup.py setup: print subprocess stderr if there is any 2012-11-13 09:55:26 -08: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 http://mercurial.selenic.com/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.