Augie Fackler <augie@google.com> [Wed, 26 Jul 2017 13:21:34 -0400] rev 33591
setup: fix mistake that prevented Python 3 from being excluded
My intent was to only allow Python 3 if the right environment variable
is set (for when people want to use `pip install .` on hg
locally). This fixes the bug in my previous change. I verified that
`python3.6 run-tests.py` still passes the tests that passed before,
and that all tests pass on 2.7 (including our virtualenv-using
installation test).
Differential Revision: https://phab.mercurial-scm.org/D185
Jun Wu <quark@fb.com> [Mon, 24 Jul 2017 23:52:56 -0700] rev 33590
rebase: move bookmark to destination for commits becoming empty (
issue5627)
When rebasing a changeset X and that changeset becomes empty, we should move
the bookmark on X to rebase destination.
This is a regression caused by the scmutil.cleanupnodes refactoring for
rebase.
The `adjustdest` function calculates the destination of bookmark movement.
It was back-ported from https://phab.mercurial-scm.org/D21. It might be
slightly more powerful than the minimal requirement to solve this issue.
For example, it's impossible for a merge changeset to become empty while any
of its ancestors does not become empty, but the code could handle that case.
Since the code is reasonably short and clean, and helps the upcoming D21
series, I'd like to check-in `adjustdest` now.
Thanks Martin von Zweigbergk for spotting corner cases (-k and descendant
with bookmarks) in this area!
Yuya Nishihara <yuya@tcha.org> [Wed, 26 Jul 2017 23:39:42 +0900] rev 33589
setup: drop use of set literal so parsable on Python 2.6
Otherwise friendly error wouldn't be displayed.
Augie Fackler <augie@google.com> [Fri, 21 Jul 2017 10:46:31 -0400] rev 33588
setup: add extra logic to try and recommend a new pip on bad Python
Modern pip can detect supported Python versions (which we now
declare), and pull down a reasonable release. This trick was suggested
in http://bit.ly/pycon2017-build-bridges, and seems like a good
defensive maneuver so that when we want to move to Python 3 it's
less risky for existing users.
This moves the version-check logic after defining our printf function
so we can print more informative messages.
Augie Fackler <augie@google.com> [Fri, 21 Jul 2017 10:39:52 -0400] rev 33587
setup: explicitly declare supported Python versions
I think we should probably backport this to 4.2 as well, and do one
more release there that explicitly declares 2.6 support. That way
anyone stuck on Python 2.6 will end up getting the right hg if they
use a modern pip to install. Users can still use `python setup.py`
incantations to attempt installing Mercurial on unsupported Pythons,
including 3.5 and 3.6.
A followup change will switch to only doing our own
Python-version-check logic if we're not being installed by a
reasonable pip.
Augie Fackler <augie@google.com> [Mon, 24 Jul 2017 15:37:57 -0400] rev 33586
contrib: remove one test from the python 3 whitelist
439b4d005b4a introduced a use of 'hg revert --no-backup' which is
currently broken. Rather than try and do a fix on the (complicated)
revert code during the freeze, let's just give up on this test under
Python 3 until later. Once we do fix things, the test ratchet script
will re-enable it.
Augie Fackler <augie@google.com> [Mon, 24 Jul 2017 13:50:25 -0400] rev 33585
ui: fix configbytes isinstance check to look for bytes and not str
Fixes configbytes on Python 3.
Augie Fackler <augie@google.com> [Mon, 24 Jul 2017 14:42:55 -0400] rev 33584
patch: update copying of dict keys and values to work on Python 3
Alex Gaynor <agaynor@mozilla.com> [Fri, 21 Jul 2017 14:22:08 +0000] rev 33583
phabricator: include the suggested arc config in the repo
Test Plan:
I uploaded this revision with `arc diff`
Differential Revision: https://phab.mercurial-scm.org/D171
Martin von Zweigbergk <martinvonz@google.com> [Wed, 19 Jul 2017 14:50:50 -0700] rev 33582
match: override visitdir() in nevermatcher to return False
When we changed basematcher.visitdir() in
cf15c3cc304c (match: make
base matcher return True for visitdir, 2017-07-14), we forgot to add
an override in nevermatcher. This led to tests failing in narrowhg.
As Durham pointed out, it's high time to add unit tests for the
matcher, so this patch also adds a first unit test.
Differential Revision: https://phab.mercurial-scm.org/D151
Steve Borho <steve@borho.org> [Fri, 21 Jul 2017 11:26:51 -0500] rev 33581
wix: update list of necessary pyd files
Jun Wu <quark@fb.com> [Fri, 21 Jul 2017 08:43:39 -0700] rev 33580
run-tests: pre instantiate pygments objects
This speeds up run-tests.py diff output by 10x, which affects developer
experience significantly. As demonstrated by the following test:
```
#require pygments
$ for i in `seq 1 200`; do
> echo ' $ echo '$i >> test-a.t
> echo ' wrong' >> test-a.t
> done
$ cat > walltime.py <<EOF
> from __future__ import absolute_import, print_function
> import os, sys, time
> t1 = time.time()
> os.system(' '.join(sys.argv[1:]) + ' >/dev/null 2>/dev/null')
> t2 = time.time()
> print('%0.2f' % (t2 - t1))
> EOF
$ $PYTHON walltime.py $TESTDIR/run-tests.py -l --color=never $TESTTMP/test-a.t
0.24
Before this patch:
$ $PYTHON walltime.py $TESTDIR/run-tests.py -l --color=always $TESTTMP/test-a.t
2.46
After this patch:
$ $PYTHON walltime.py $TESTDIR/run-tests.py -l --color=always $TESTTMP/test-a.t
0.25
```
Augie Fackler <augie@google.com> [Wed, 19 Jul 2017 13:44:22 -0400] rev 33579
contrib: drop Python 2.6 from manylinux1 wheel script
Augie Fackler <augie@google.com> [Wed, 19 Jul 2017 13:45:06 -0400] rev 33578
contrib: make build-linux-wheels.sh executable
Siddharth Agarwal <sid0@fb.com> [Thu, 20 Jul 2017 18:04:21 -0700] rev 33577
test-dirstate-race: hide irrelevant hg status output
See the explanation for more.
Differential Revision: https://phab.mercurial-scm.org/D153
Matt Harbison <matt_harbison@yahoo.com> [Tue, 18 Jul 2017 20:34:22 -0400] rev 33576
test-commit: stabilize for filesystems without symlink support
Matt Harbison <matt_harbison@yahoo.com> [Tue, 18 Jul 2017 19:49:51 -0400] rev 33575
test-https: properly conditionalize Windows vs non-Windows output
There's a bug in the (feature !) annotation, and this needs to be resolved
before fixing it. Once fixed, the glob '*/missing' will match the output
'/missing' on non-Windows platforms, consuming the output line and leaving
nothing for the no-windows required line.
I probably should have made (foo !) match only the 'foo' feature, and be ignored
otherwise instead of optional. (re) didn't work here, because the parenthesis
need to be escaped too.
Kevin Bullock <kbullock@ringworld.org> [Wed, 19 Jul 2017 07:58:03 -0500] rev 33574
Added signature for changeset
857876ebaed4
Kevin Bullock <kbullock@ringworld.org> [Wed, 19 Jul 2017 07:57:53 -0500] rev 33573
Added tag 4.3-rc for changeset
857876ebaed4
Kevin Bullock <kbullock+mercurial@ringworld.org> [Wed, 19 Jul 2017 07:51:41 -0500] rev 33572
merge default into stable for code freeze
Rishabh Madan <rishabhmadan96@gmail.com> [Tue, 18 Jul 2017 23:04:08 +0530] rev 33571
releasenotes: add custom admonitions support for release notes
By default, the extension has default sections like fix, feature, perf etc.. This
patch allow user to add support for custom admonition. In order to add a custom
admonition, one needs to have a .hgreleasenotes file inside the repository. All the
custom directive with name specified under the tag [sections] will be
usable by the extension. One important thing to keep in mind is if there exists any
custom admonitions with same key as default then they will override the default ones.
Ryan McElroy <rmcelroy@fb.com> [Tue, 18 Jul 2017 06:27:36 -0700] rev 33570
check-config: mention the file and line of the error
I used this to more quickly track down a failing test-check-config.t issue
in another repo. I thought it might be useful more generally, so I'm sending
it out in case others think it's a worthwhile change.
Durham Goode <durham@fb.com> [Tue, 18 Jul 2017 07:47:28 -0700] rev 33569
rebase: add config to move rebase into a single transaction
This was previously landed as
cf8ad0e6c0e4 but backed out in
a5abaa81fa because
it broke hook mid rebase and caused conflict resolution data loss in the event
of unexpected exceptions. This new version adds the behavior back but behind a
config flag, since the performance improvement is notable in large repositories.
The next patch adds a test covering this config.
The old commit message was:
Previously, rebasing would open several transaction over the course of rebasing
several commits. Opening a transaction can have notable overhead (like copying
the dirstate) which can add up when rebasing many commits.
This patch adds a single large transaction around the actual commit rebase
operation, with a catch for intervention which serializes the current state if
we need to drop back to the terminal for user intervention. Amazingly, almost
all the tests seem to pass.
On large repos with large working copies, this can speed up rebasing 7 commits
by 25%. I'd expect the percentage to be a bit larger for rebasing even more
commits.
There are minor test changes because we're rolling back the entire transaction
during unexpected exceptions instead of just stopping mid-rebase, so there's no
more backup bundle. It also leave an unknown file in the working copy, since our
clean up 'hg update' doesn't delete unknown files.
(grafted from
cca36c7f35261b0e31beb226bf361067ef0e06ab)
(grafted from
dc497d8705b71503e32e07bd33925c1e42cf9c9a)
Differential Revision: https://phab.mercurial-scm.org/D134
Martin von Zweigbergk <martinvonz@google.com> [Mon, 17 Jul 2017 16:32:10 -0700] rev 33568
run-tests: remove unnecessary 'with_color' variable
Its value is always the same as that of 'pygmentspresent'.
Differential Revision: https://phab.mercurial-scm.org/D118
Martin von Zweigbergk <martinvonz@google.com> [Mon, 17 Jul 2017 16:27:13 -0700] rev 33567
run-tests: warn if --color=always and no pygments installed
Differential Revision: https://phab.mercurial-scm.org/D117
Martin von Zweigbergk <martinvonz@google.com> [Mon, 17 Jul 2017 16:28:42 -0700] rev 33566
run-tests: drop unnecessary check for pygmentspresent
2893face0af5 (run-tests: check if stream is a tty before using color,
2017-07-18) made the check redundant but forgot to remove it.
Differential Revision: https://phab.mercurial-scm.org/D116
Martin von Zweigbergk <martinvonz@google.com> [Mon, 17 Jul 2017 16:15:15 -0700] rev 33565
run-tests: pass color option via test case object , not global var
At first I updated the color field of the 'options' object (from the
CLI parser), but then I decided to put it directly on the test case
object itself to avoid mutating the shared object (even though all
tests would have the same value).
Differential Revision: https://phab.mercurial-scm.org/D114
Jun Wu <quark@fb.com> [Mon, 10 Jul 2017 18:02:03 -0700] rev 33564
phabricator: sanity check Differential Revision from commit message
Previously, we trust Differential Revision in commit message blindly. This
patch adds sanity check so a host name change will be detected and the
commit message will be ignored.
Differential Revision: https://phab.mercurial-scm.org/D35
Matt Harbison <matt_harbison@yahoo.com> [Tue, 18 Jul 2017 08:14:10 -0400] rev 33563
test-phases-exchange: properly conditionalize output
I forgot to invert the conditions, and the test runner didn't catch it[1]. But
since only '&&' is supported in the per-line feature tests, this won't work
anyway.
[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-July/101941.html
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 18 Jul 2017 00:10:44 +0530] rev 33562
commitextras: mark the extension as ADVANCED
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Tue, 18 Jul 2017 07:19:26 +0900] rev 33561
run-tests: check if stream is a tty before using color
Previous implementation (
e80041832eec) checked only if sys.stderr was a tty
which was less general. Also makes sure that colors is never used if pygments is
not available, irrespective of --color flag value.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 14 Jul 2017 21:44:29 -0700] rev 33560
tests: rewrite test-rebase-detach.t using drawdag
This makes it much clearer because each test case can have exactly the
graph it wants (no extra cruft just because other tests want it).
Differential Revision: https://phab.mercurial-scm.org/D94