A Scalable, User-Friendly Source Control System.
Go to file
Pierre-Yves David 0e26e4a437 rebase: 'hg pull --rebase' now update only if there was nothing to rebase
I recently discovered that 'hg pull --rebase' was also running an update. And it
was running it in all cases as long as the update would move the working copy
somewhere else...

This felt wrong and it actually is. This 'update' call is introduced in
8bea699a182c. In that commit the intent is very clear. The update should happen
only when there was nothing to rebase. The implementation did not check if a
rebase was performed because, at that time, rebase would always leave you on the
top most changeset. Being on that top most changeset result in a no-op update
and the step was skipped.

However 642dc7838453d changed rebase behavior to preserve the working copy
parent, so if we are not on a head at pull time, the code performs both a rebase
and an update.

This changeset introduce a test for this case and restore the intended behavior.

There are other issues with this custom update code but they will be addressed
in later changeset (eg: own destination logic, lack of heads warning).

I'm not super happy with the explicitly comparison 'rebase(...) == 1' but a
later series will have a cleaner way to handle it anyway (while making 'rebase'
pick its default destination like 'merge').
2016-02-13 16:59:32 +00:00
contrib chg: verify return value of sigaction() and sigemptyset() 2016-01-29 22:52:16 +09:00
doc doc: translate from :hg:help config.SECTION to a valid link to hgrc.5.html 2016-02-11 23:15:34 +09:00
hgext rebase: 'hg pull --rebase' now update only if there was nothing to rebase 2016-02-13 16:59:32 +00:00
i18n i18n: calculate correct line number in source of messages to be translated 2016-02-11 23:15:34 +09:00
mercurial filectx: replace use of _filerev with _filenode 2016-02-08 14:17:11 -08:00
tests rebase: 'hg pull --rebase' now update only if there was nothing to rebase 2016-02-13 16:59:32 +00:00
.hgignore hgignore: ignore chg binary 2016-01-03 12:41:28 +09:00
.hgsigs Added signature for changeset 48d3cfe1ba91 2016-02-03 16:00:00 -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 hg: add support for HGUNICODEPEDANTRY environment variable 2014-06-23 09:33:07 -04: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 builddeb: read default distribution and codename from lsb_release 2015-11-25 18:07:33 +08:00
README urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
setup.py copyright: update to 2016 2016-01-21 21:15:52 +00: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.