A Scalable, User-Friendly Source Control System.
Go to file
Martin von Zweigbergk 4b40ac0110 log: evaluate filesets on working copy, not its parent
When running "hg log 'set:added()'", we create two matchers: one used
for producing the revset and one used for finding files to match. In
185b6b930e8c (graphlog: evaluate FILE/-I/-X filesets on the working
dir, 2012-02-26), we started passing a revision argument along from
what's currently in cmdutil._makelogrevset() to
revset._matchfiles(). When the revision was an empty string, it
referred to the working copy. This was subtly done with "repo[rev or
None]". Then, in 5ff5c5c9e69f (revset: avoid recalculating filesets,
2014-10-22), that conversion from empty string to None was lost. Note
that repo[''] is equivalent to repo['.'], not repo[None].

The consequence of this, to the user, is that when running "hg log
'set:added()'", the file matcher matches files added in the working
copy, while the revset matcher matches revisions that touch files
added in the parent of the working copy. As a result, only revisions
that touch any files added in the parent of the working copy will be
considered, but they will only be included if they also touch files
added in the working copy.

Fix the bug by converting '' to None again, but make it a little more
explicit this time (plus, we now have tests for it).
2015-01-21 15:23:13 -08:00
contrib osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081) 2015-01-23 06:28:28 +01:00
doc gendoc: restore use of callable() since it was readded in Python 3.2 2014-06-23 09:23:57 -04:00
hgext largefiles: use 'default' path for pulling largefiles, not 'default-push' 2015-01-23 18:41:37 +01:00
i18n i18n-pt_BR: synchronized with 962d40fe1951 2015-01-18 11:16:45 -02:00
mercurial log: evaluate filesets on working copy, not its parent 2015-01-21 15:23:13 -08:00
tests log: evaluate filesets on working copy, not its parent 2015-01-21 15:23:13 -08:00
.hgignore hgignore: ignore the PyCharm workspace folder 2014-10-13 11:46:04 +02:00
.hgsigs Added signature for changeset 962d40fe1951 2015-01-17 18:29:30 -08: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: add support for HGUNICODEPEDANTRY environment variable 2014-06-23 09:33:07 -04: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 osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081) 2015-01-23 06:28:28 +01:00
README readme: mention how to run in-place 2012-03-02 21:43:55 +02:00
setup.py setup: don't fail when Python doesn't have the cygwinccompiler package 2014-12-23 19:54:48 -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.