Tue, 15 Oct 2019 11:05:32 -0400 dirstate: add some traces on listdir calls
Augie Fackler <augie@google.com> [Tue, 15 Oct 2019 11:05:32 -0400] rev 43239
dirstate: add some traces on listdir calls I'm starting to spend some time trying to make `hg status` do less work, and knowing what's happening in here and what's expensive is an important start. Differential Revision: https://phab.mercurial-scm.org/D7109
Tue, 15 Oct 2019 11:06:04 -0400 cleanup: hgdemandimport.tracing accepts strings, not bytes
Augie Fackler <augie@google.com> [Tue, 15 Oct 2019 11:06:04 -0400] rev 43238
cleanup: hgdemandimport.tracing accepts strings, not bytes This does mean that the resulting traces will have some b'' goo in them on Python 3, but I think that's a worthwile price to pay since it doesn't break any tests. Differential Revision: https://phab.mercurial-scm.org/D7108
Tue, 15 Oct 2019 09:48:27 -0400 tests: fix formatting test after move of black config
Augie Fackler <augie@google.com> [Tue, 15 Oct 2019 09:48:27 -0400] rev 43237
tests: fix formatting test after move of black config Differential Revision: https://phab.mercurial-scm.org/D7102
Wed, 16 Oct 2019 15:27:17 +0200 rust-dependencies: pin the dependencies of hg-core to prevent breakage
Raphaël Gomès <rgomes@octobus.net> [Wed, 16 Oct 2019 15:27:17 +0200] rev 43236
rust-dependencies: pin the dependencies of hg-core to prevent breakage A new version of the `rand` crate broke two discovery tests. We should upgrade our dependencies periodically manually. Differential Revision: https://phab.mercurial-scm.org/D7115
Tue, 15 Oct 2019 19:13:47 -0700 automation: install Python 3.8.0
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 15 Oct 2019 19:13:47 -0700] rev 43235
automation: install Python 3.8.0 Python 3.8 has been released. Let's install it instead of the RC / development version. Differential Revision: https://phab.mercurial-scm.org/D7114
Mon, 14 Oct 2019 21:21:58 -0700 automation: schedule an EC2Launch run on next boot
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 14 Oct 2019 21:21:58 -0700] rev 43234
automation: schedule an EC2Launch run on next boot Without this, launching EC2 instances constructed from the AMI won't go through the normal EC2 instance launch machinery. This missing machinery does important things like set up network routes to use the instance metadata service and process any UserData. Since EC2Launch now runs on subsequent boots and UserData is processed, we needed to make setting of UserData conditional on bootstrapping mode. Differential Revision: https://phab.mercurial-scm.org/D7113
Tue, 15 Oct 2019 09:54:05 -0400 dirs: give formatting oversight to clang-format
Augie Fackler <augie@google.com> [Tue, 15 Oct 2019 09:54:05 -0400] rev 43233
dirs: give formatting oversight to clang-format Differential Revision: https://phab.mercurial-scm.org/D7104
Tue, 15 Oct 2019 09:52:33 -0400 dirs: tag a struct as not being formattable
Augie Fackler <augie@google.com> [Tue, 15 Oct 2019 09:52:33 -0400] rev 43232
dirs: tag a struct as not being formattable Differential Revision: https://phab.mercurial-scm.org/D7103
Wed, 02 Oct 2019 14:38:34 -0400 sidedatacopies: only store an entry if it has values
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Oct 2019 14:38:34 -0400] rev 43231
sidedatacopies: only store an entry if it has values This will make for a shorter storage and help use to write faster code in simple case. This change already provided a speed boost for copy tracing. For example here is combined time of running copies tracing on a 6989 pairs of revision on the pypy repos: before: 771s after: 631s - 18% This also has a very positive impact on changelog size. For example here are the number for the `00changelog.d` file of pypy. before: 30449712 Bytes after: 24973718 Bytes - 18% This give an overall quite acceptable overhead for storing copies into the changelog: filelog-only: 23370586 sidedata: 24973718 Bytes + 7% Differential Revision: https://phab.mercurial-scm.org/D7068
Wed, 02 Oct 2019 14:16:30 -0400 sidedatacopies: only read from copies when in this mode
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Oct 2019 14:16:30 -0400] rev 43230
sidedatacopies: only read from copies when in this mode If we know we expect data from sidedata, we read them from sidedata and nothing else. This avoid looking into extra for revision without sidedata entries. Such revision will be introduced in the next changesets. Differential Revision: https://phab.mercurial-scm.org/D7067
Sun, 13 Oct 2019 20:06:09 +0900 dirs: remove mutable string optimization at all
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Oct 2019 20:06:09 +0900] rev 43229
dirs: remove mutable string optimization at all As far as I can see, the optimization trick has been dead since 42e89b87ca79 "dirs: speed up by storing number of direct children per dir". After 42e89b87ca79, the key variable is cleared to NULL at each iteration.
Tue, 15 Oct 2019 12:14:44 +0200 py3: prevent comparison with None in curses histedit (issue6196)
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 15 Oct 2019 12:14:44 +0200] rev 43228
py3: prevent comparison with None in curses histedit (issue6196)
Sat, 12 Oct 2019 11:30:25 -0700 fix: match patterns relative to root
Martin von Zweigbergk <martinvonz@google.com> [Sat, 12 Oct 2019 11:30:25 -0700] rev 43227
fix: match patterns relative to root I was surprised fixer patterns (used to determine which fixers to run) are applies to the parent directory, not the repo root directory. Danny Hooper (the author of the extension) seemed to agree that it's better to apply them to the repo root, so that's what this patch does. Differential Revision: https://phab.mercurial-scm.org/D7101
Sat, 12 Oct 2019 11:30:20 -0700 tests: add test showing that fixer patterns are currently relative to $PWD
Martin von Zweigbergk <martinvonz@google.com> [Sat, 12 Oct 2019 11:30:20 -0700] rev 43226
tests: add test showing that fixer patterns are currently relative to $PWD Differential Revision: https://phab.mercurial-scm.org/D7100
Mon, 14 Oct 2019 12:55:40 -0400 black: also ignore grey.py
Augie Fackler <augie@google.com> [Mon, 14 Oct 2019 12:55:40 -0400] rev 43225
black: also ignore grey.py Differential Revision: https://phab.mercurial-scm.org/D7090
Mon, 14 Oct 2019 12:54:49 -0400 black: use multiline exclude definition
Augie Fackler <augie@google.com> [Mon, 14 Oct 2019 12:54:49 -0400] rev 43224
black: use multiline exclude definition Our excludes list is pretty complicated, so let's give ourselves some readability. Black treats multiline exclude definitions as verbse regular expressions, so we can split this up and make it easier to consume. Differential Revision: https://phab.mercurial-scm.org/D7089
Mon, 14 Oct 2019 12:52:33 -0400 black: move remaining config knobs into toml file
Augie Fackler <augie@google.com> [Mon, 14 Oct 2019 12:52:33 -0400] rev 43223
black: move remaining config knobs into toml file Differential Revision: https://phab.mercurial-scm.org/D7088
Mon, 14 Oct 2019 12:46:32 -0400 black: rename pyproject.toml to black.toml
Augie Fackler <augie@google.com> [Mon, 14 Oct 2019 12:46:32 -0400] rev 43222
black: rename pyproject.toml to black.toml Black won't read this automatically (you'll have to specify --config), but having a pyproject.toml *at all* puts pip in PEP 517/518 mode which breaks us for obscure reasons I don't understand. Rather than waste a ton of time fighting with pip, let's just do this. Differential Revision: https://phab.mercurial-scm.org/D7087
Sat, 12 Oct 2019 15:12:54 -0700 fix: remove a never-true check for unset pattern in Fixer.affects()
Martin von Zweigbergk <martinvonz@google.com> [Sat, 12 Oct 2019 15:12:54 -0700] rev 43221
fix: remove a never-true check for unset pattern in Fixer.affects() We don't create an instance of a Fixer if the pattern is None, so we don't need to check that in affects(). Differential Revision: https://phab.mercurial-scm.org/D7086
Fri, 26 Jul 2019 08:43:57 -0700 fix: warn when a fixer doesn't have a configured command
Martin von Zweigbergk <martinvonz@google.com> [Fri, 26 Jul 2019 08:43:57 -0700] rev 43220
fix: warn when a fixer doesn't have a configured command It seems we currently produce an empty command line and then decide to not run it, but it seems better to skip that part too. Differential Revision: https://phab.mercurial-scm.org/D7085
Sat, 12 Oct 2019 11:00:20 -0700 fix: make Fixer initialization more explicit for clarity
Martin von Zweigbergk <martinvonz@google.com> [Sat, 12 Oct 2019 11:00:20 -0700] rev 43219
fix: make Fixer initialization more explicit for clarity I found it quite confusing that Fixer accessed fields that seemed like they didn't exist. Differential Revision: https://phab.mercurial-scm.org/D7084
Sat, 12 Oct 2019 11:16:19 -0700 fix: don't pass in default value when looking up config
Martin von Zweigbergk <martinvonz@google.com> [Sat, 12 Oct 2019 11:16:19 -0700] rev 43218
fix: don't pass in default value when looking up config The defaults are now registered correctly so we don't need to pass in the default value when we look up a config value. Differential Revision: https://phab.mercurial-scm.org/D7083
Sat, 12 Oct 2019 11:13:55 -0700 fix: fix registration of config item defaults
Martin von Zweigbergk <martinvonz@google.com> [Sat, 12 Oct 2019 11:13:55 -0700] rev 43217
fix: fix registration of config item defaults Before this patch, because of the "(:<name>)?", all registered patterns would match and the default value would not be the one we thought we had registered (maybe it just took the default value for the first match?). This didn't matter because we didn't care about the default value; we used our own, intended default value in getfixers() anyway. We also have to look up each config item individually in order to not get developer warnings. Differential Revision: https://phab.mercurial-scm.org/D7082
Sat, 12 Oct 2019 12:41:53 -0700 automation: capture additional exception when formatting
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 Oct 2019 12:41:53 -0700] rev 43216
automation: capture additional exception when formatting I started encountering this for some reason. Differential Revision: https://phab.mercurial-scm.org/D7078
Sat, 12 Oct 2019 11:36:26 -0700 contrib: update to latest Windows package versions
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 Oct 2019 11:36:26 -0700] rev 43215
contrib: update to latest Windows package versions Let's keep modern. Differential Revision: https://phab.mercurial-scm.org/D7077
Sun, 13 Oct 2019 21:47:05 +0900 rust-cpython: drop direct dependency on python(27|3)_sys
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Oct 2019 21:47:05 +0900] rev 43214
rust-cpython: drop direct dependency on python(27|3)_sys We no longer use it.
Sun, 13 Oct 2019 17:07:44 +0900 rust-cpython: leverage upstreamed py_capsule_fn!() macro
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Oct 2019 17:07:44 +0900] rev 43213
rust-cpython: leverage upstreamed py_capsule_fn!() macro
Sun, 13 Oct 2019 17:05:09 +0900 rust-cpython: bump cpython crates to 0.3
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Oct 2019 17:05:09 +0900] rev 43212
rust-cpython: bump cpython crates to 0.3 Unblocks py_capsule_fn!().
Sun, 13 Oct 2019 17:02:26 +0900 rust-cpython: turn inline comments into non-doc comments
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Oct 2019 17:02:26 +0900] rev 43211
rust-cpython: turn inline comments into non-doc comments
Sun, 13 Oct 2019 17:01:10 +0900 rust-cpython: fix signature of make_dirstate_tuple()
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Oct 2019 17:01:10 +0900] rev 43210
rust-cpython: fix signature of make_dirstate_tuple() Fortunately, the layout of PyObject {} is compatible with a C pointer, but we shouldn't rely on that. This also fixes the handling of NULL pointer.
Sun, 13 Oct 2019 16:58:15 +0900 rust-cpython: mark capsule function as unsafe
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Oct 2019 16:58:15 +0900] rev 43209
rust-cpython: mark capsule function as unsafe
Sun, 13 Oct 2019 16:55:17 +0900 rust-cpython: add wrapper around decapsule_make_dirstate_tuple()
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Oct 2019 16:55:17 +0900] rev 43208
rust-cpython: add wrapper around decapsule_make_dirstate_tuple() There are a couple of safety issues. First, the returned function pointer must be unsafe. Second, its return value must be a raw pointer (i.e. python27_sys::PyObject), not a cpython::PyObject. The wrapper function will address these issues.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 tip