Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 10:58:29 -0400] rev 33876
contrib: work around some modules not existing on Py3 in import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:05:07 -0400] rev 33875
tests: stop using old except syntax in test-bundle2-format
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:57:52 -0400] rev 33874
tests: update test-archive to always use hashlib
We don't need the fallback to the old modules anymore.
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:57:10 -0400] rev 33873
md5sum: assume hashlib exists now that we're 2.7 only
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 12:58:51 -0400] rev 33872
undumprevlog: update to valid Python 3 syntax
I didn't do anything to ensure correctness here, just enough to avoid
tracebacks in the import checker, which uses the native ast module to
try and parse all our Python files.
Alex Gaynor <alex.gaynor@gmail.com> [Wed, 23 Aug 2017 01:08:09 +0000] rev 33871
tests: fixed a bytes/unicode confusion in the test runner
Differential Revision: https://phab.mercurial-scm.org/D483
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 10:01:27 -0700] rev 33870
run-tests: remove unused pygments token type
Differential Revision: https://phab.mercurial-scm.org/D478
Martin von Zweigbergk <martinvonz@google.com> [Mon, 21 Aug 2017 22:13:51 -0700] rev 33869
run-tests: also highlight .py test files in summary messages
With the .t files highlighted, it's very easy to not even notice
failed .py tests.
Differential Revision: https://phab.mercurial-scm.org/D471
Jun Wu <quark@fb.com> [Sun, 20 Aug 2017 10:55:05 -0700] rev 33868
test-revset: make it work with chg
chg currently triggers `reposetup` as a side effect of `hg serve` command.
Therefore change the test to not output during `reposetup` to be compatible
with chg.
Differential Revision: https://phab.mercurial-scm.org/D455
Yuya Nishihara <yuya@tcha.org> [Sat, 19 Aug 2017 11:23:33 +0900] rev 33867
copies: use intersectmatchers() in non-merge p1 optimization
This enables the optimization introduced by
d4247c306d82 for non-rebase cases.
Before, the match couldn't be narrowed if it was e.g. alwaysmatcher.
The logic is copied from
bd56bea5ecf8.
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Tue, 22 Aug 2017 11:00:00 +0200] rev 33866
run-tests: pre instantiate pygments objects
Pre instantiate pygments objects to minimize overhead (cf.
20436925e080)
Sean Farley <sean@farley.io> [Mon, 21 Aug 2017 21:35:06 -0700] rev 33865
merge with stable
Jun Wu <quark@fb.com> [Fri, 11 Aug 2017 01:34:11 -0700] rev 33864
rebase: only change self.state when collapsing in _finishrebase
When the code executes to _finishrebase, self.state should be populated with
correct destinations and do not need to be written to a node. The code was
introduced by
8dc45c9059, which seems to avoid setting state values to None
but it didn't provide more details.
Differential Revision: https://phab.mercurial-scm.org/D346
Jun Wu <quark@fb.com> [Thu, 10 Aug 2017 22:17:15 -0700] rev 33863
rebase: choose merge base without unwanted revisions
Previously, when there are 2 merge base candidates, we choose p1 blindly,
which may make the merge result to have "unwanted content". This patch makes
rebase smarter - choose a merge base that does not have "unwanted revs" if
possible. Since we don't really have a good solution when there are
"unwanted revs", abort in that case.
Differential Revision: https://phab.mercurial-scm.org/D340
Martin von Zweigbergk <martinvonz@google.com> [Tue, 15 Aug 2017 23:23:55 -0700] rev 33862
templatekw: choose {latesttag} by len(changes), not date (
issue5659)
As Augie reported in the bug, the current heuristic of choosing the
best tag of a merge commit by taking the one with newest tag (in terms
of tagging date) currently fails in the Mercurial repo itself. Copying
the example from Yuya:
$ hg glog -T '{node|short} {latesttag}+{latesttagdistance}\n' \
-r '4.2.3: & (merge() + parents(merge()) + tag())'
o
02a745c20121 4.2.3+5
|\
| o
86aca74a063b 4.2.3+4
| |\
| | o
e6d8ee3c9ec3 4.3-rc+109
| | |
| | ~
o |
a3ce07e2dde5 4.3.1+2
: |
o |
3fee7f7d2da0 4.3.1+0
|/
o
98e990bb7330 4.2.3+3
|\
| ~
o
506d7e48fbe6 4.2.3+2
:
o
943c91326b23 4.2.3+0
|
~
It seems to me like the best choice is the tag with the smallest
number of changes since it (across all paths, not the longest single
path). So that's what this patch does, even though it's
costly. Best-of-5 timings for Yuya's command above shows a slowdown
from 1.293s to 1.610s. We can optimize it later.
Differential Revision: https://phab.mercurial-scm.org/D447
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Aug 2017 12:50:26 -0700] rev 33861
tests: use graph log in {latesttag} tests
The tests are much easier to read if one does not have to re-read the
setup part all the time to understand the graph shape.
Differential Revision: https://phab.mercurial-scm.org/D446
Jun Wu <quark@fb.com> [Wed, 16 Aug 2017 10:44:06 -0700] rev 33860
demandimport: disable if chg is being used
In chg's case, making modules lazily loaded could actually slow down things
since chg pre-imports them. Therefore disable demandimport if chg is being
used.
This is not done by setting `HGDEMANDIMPORT` chg client-side because that
has side-effects on child processes (hooks, etc).
Differential Revision: https://phab.mercurial-scm.org/D351
Jun Wu <quark@fb.com> [Fri, 18 Aug 2017 11:08:17 -0700] rev 33859
demandimport: move HGDEMANDIMPORT test to __init__.py
The logic is now shared between demandimport{2,3}.
Differential Revision: https://phab.mercurial-scm.org/D445
Danny Hooper <hooper@google.com> [Tue, 15 Aug 2017 10:15:31 -0700] rev 33858
log: add a "graphwidth" template variable
Wrapping text in templates for 'hg log --graph' can't be done very well,
because the template doesn't know how wide the graph drawing is. The edge
drawing function needs to know the number of lines in the template output, so
we need to also determine how wide that drawing would be before we call the
edgefn or evaluate the template.
This patch makes edgefn compute the graph width and pass it into the template
so that we can do something like this:
COLUMNS=10 hg log --graph --template "{fill(desc, termwidth - graphwidth)}"
@ a a a a
| a a a a
| a a a a
o a a a
|\ a a a
| | a a a
| | a a a
Using extensions to do this would be relatively complicated due to a lack of
hooks in this area of the code.
In the future it may make sense to have a more generic "textwidth" that tells
you how many columns you can expect to fill without causing the terminal to
wrap your output. I'm not sure there are other situations to motivate this yet,
or if it is entirely feasible.
Differential Revision: https://phab.mercurial-scm.org/D360
Boris Feld <boris.feld@octobus.net> [Wed, 16 Aug 2017 10:18:57 +0200] rev 33857
obsmarker: fix precnode deprecation
The deprecation message for marker.precnode was wrong. Fix the typo.
Differential Revision: https://phab.mercurial-scm.org/D413
Boris Feld <boris.feld@octobus.net> [Wed, 16 Aug 2017 10:26:26 +0200] rev 33856
obsmarker: precnode was renamed into prednode
Update all calls to formatter.write first arguments to remove references to
precnode and use prednode consistently everywhere.
Differential Revision: https://phab.mercurial-scm.org/D414
Boris Feld <boris.feld@octobus.net> [Wed, 16 Aug 2017 16:48:41 +0200] rev 33855
revset: mark evolution-related revsets as experimental
Differential Revision: https://phab.mercurial-scm.org/D416
Jun Wu <quark@fb.com> [Tue, 15 Aug 2017 17:22:57 -0700] rev 33854
push: fix docsstring
Seems the code block misses `::`. This patch makes sure `[push]` and
`pushvars.server = true` are in two lines.
Differential Revision: https://phab.mercurial-scm.org/D411
Yuya Nishihara <yuya@tcha.org> [Wed, 16 Aug 2017 13:54:24 +0900] rev 33853
py3: select input or raw_input by pycompat
This seems slightly cleaner.