Yuya Nishihara <yuya@tcha.org> [Sat, 13 Oct 2018 12:29:43 +0200] rev 40243
releasenotes: use stringutil.wrap() instead of handcrafted TextWrapper wrapper
It's silly to splitlines() a joined string, but we don't care the performance
here.
Martin von Zweigbergk <martinvonz@google.com> [Sat, 13 Oct 2018 00:22:05 -0700] rev 40242
match: optimize matcher when all patterns are of rootfilesin kind
Internally at Google, we use narrowspecs with only rootfilesin-kind
patterns. Sometimes there are thousands of such patterns
(i.e. thousands of tracked directories). In such cases, it can take
quite long to build and evaluate the resulting matcher.
This patch optimizes matchers that have only patterns of rootfilesin
so it instead of creating a regular expression, it matches the given
file's directory against the set of directories.
In a repo with ~3600 tracked directories, it takes about 1.35 s to
build the matcher and 2.7 s to walk the dirstate before this
patch. After, it takes 0.04 s to create the matcher and 0.87 s to walk
the dirstate.
It may be worthwhile to do similar optimizations for e.g. patterns of
type "kind:", but that's not a priority for us right now.
Differential Revision: https://phab.mercurial-scm.org/D5058
Augie Fackler <augie@google.com> [Sat, 13 Oct 2018 06:02:27 -0400] rev 40241
churn: use integer division consistently
This results in slight output changes, but it's at least consistent
between Python 2 and 3. Since the output is just bar graphs anyway,
I'm content with the changes.
Differential Revision: https://phab.mercurial-scm.org/D5063
Augie Fackler <augie@google.com> [Sat, 13 Oct 2018 05:58:16 -0400] rev 40240
churn: fix stack traces on Python 3
Differential Revision: https://phab.mercurial-scm.org/D5062
Augie Fackler <augie@google.com> [Sat, 13 Oct 2018 04:00:57 -0400] rev 40239
py3: moar passing tests
Differential Revision: https://phab.mercurial-scm.org/D5055
Augie Fackler <augie@google.com> [Fri, 12 Oct 2018 12:52:49 -0400] rev 40238
py3: one new passing tests
Differential Revision: https://phab.mercurial-scm.org/D5006
Augie Fackler <augie@google.com> [Fri, 12 Oct 2018 12:38:37 -0400] rev 40237
tests: expand our coverage of errors in Python 3 for bad extensions
What a mess.
Differential Revision: https://phab.mercurial-scm.org/D5005
Augie Fackler <augie@google.com> [Fri, 12 Oct 2018 12:32:12 -0400] rev 40236
tests: add lots of globs and conditional output lines
The test now passes on Python 3. I'm going to do one follow-up where
I'll adjust some grep calls to improve our checking of things on
Python 3.
Differential Revision: https://phab.mercurial-scm.org/D5004
Augie Fackler <augie@google.com> [Sat, 13 Oct 2018 04:00:47 -0400] rev 40235
releasenotes: fix remaining bytes/unicode issues caught by tests
All tests now pass.
Differential Revision: https://phab.mercurial-scm.org/D5054
Augie Fackler <augie@google.com> [Sat, 13 Oct 2018 03:27:21 -0400] rev 40234
relnotes: port to Python 3
The big annoyance here was having to feed textwrap unicodes instead of
bytes, but it all seems to work.
Differential Revision: https://phab.mercurial-scm.org/D5053