Mon, 07 Oct 2019 23:17:44 +0200 rust-utils: introduce a debug util to print the python stack trace
Raphaël Gomès <rgomes@octobus.net> [Mon, 07 Oct 2019 23:17:44 +0200] rev 43251
rust-utils: introduce a debug util to print the python stack trace Differential Revision: https://phab.mercurial-scm.org/D7057
Wed, 16 Oct 2019 17:16:23 +0300 rust-cross-platform: remove `unimplemented!` to get compile-time errors
Raphaël Gomès <rgomes@octobus.net> [Wed, 16 Oct 2019 17:16:23 +0300] rev 43250
rust-cross-platform: remove `unimplemented!` to get compile-time errors We should get a compile-time error that there is missing functionality for the targeted platform instead of the program breaking at runtime. Differential Revision: https://phab.mercurial-scm.org/D7107
Fri, 11 Oct 2019 00:18:34 -0700 widening: pass in matchers instead of patterns
Martin von Zweigbergk <martinvonz@google.com> [Fri, 11 Oct 2019 00:18:34 -0700] rev 43249
widening: pass in matchers instead of patterns This matches how it's done for the non-ellipsis case. The oldmatch is not used yet, but it should be used eventually when widening no longer resends manifests and files the client already has. Differential Revision: https://phab.mercurial-scm.org/D7099
Thu, 10 Oct 2019 22:41:50 -0700 widening: trust user to give full "known" set
Martin von Zweigbergk <martinvonz@google.com> [Thu, 10 Oct 2019 22:41:50 -0700] rev 43248
widening: trust user to give full "known" set The new narrow_widen wire protocol command is supposed to return data for exactly the revisions that the client requested (in order for it to be strip-free). So we should not add ancestors the client didn't ask for. Differential Revision: https://phab.mercurial-scm.org/D7098
Fri, 11 Oct 2019 00:06:27 -0700 widening: remove "depth" argument since it's always None
Martin von Zweigbergk <martinvonz@google.com> [Fri, 11 Oct 2019 00:06:27 -0700] rev 43247
widening: remove "depth" argument since it's always None Differential Revision: https://phab.mercurial-scm.org/D7097
Fri, 11 Oct 2019 00:03:10 -0700 widening: remove unused "heads" argument
Martin von Zweigbergk <martinvonz@google.com> [Fri, 11 Oct 2019 00:03:10 -0700] rev 43246
widening: remove unused "heads" argument Differential Revision: https://phab.mercurial-scm.org/D7096
Thu, 10 Oct 2019 22:36:55 -0700 widening: remove pointless code for second changegroup
Martin von Zweigbergk <martinvonz@google.com> [Thu, 10 Oct 2019 22:36:55 -0700] rev 43245
widening: remove pointless code for second changegroup The caller passes in common==heads, so we will never find any nodes to visit in this code and there will therefore never be a second changegroup emitted. Differential Revision: https://phab.mercurial-scm.org/D7095
Thu, 10 Oct 2019 22:34:16 -0700 widening: remove always-true condition in widening code
Martin von Zweigbergk <martinvonz@google.com> [Thu, 10 Oct 2019 22:34:16 -0700] rev 43244
widening: remove always-true condition in widening code The function is now specifically about widening, so we don't need to check if we're widening. Differential Revision: https://phab.mercurial-scm.org/D7094
Fri, 11 Oct 2019 21:51:07 -0700 narrow: drop server support for widening using the getbundle command (BC)
Martin von Zweigbergk <martinvonz@google.com> [Fri, 11 Oct 2019 21:51:07 -0700] rev 43243
narrow: drop server support for widening using the getbundle command (BC) The client still supports widening using the getbundle, which we (Google) still depend on a for a little while more (we've started the migration to the new narrow_widen command, but we're not done yet). Differential Revision: https://phab.mercurial-scm.org/D7093
Thu, 10 Oct 2019 22:18:35 -0700 widening: duplicate generateellipsesbundle2() for widening
Martin von Zweigbergk <martinvonz@google.com> [Thu, 10 Oct 2019 22:18:35 -0700] rev 43242
widening: duplicate generateellipsesbundle2() for widening The widening and the non-widening code are quite different. It will be clearer to have them as sepearate functions. To start with, I've just copied it exactly, so it's clearer over the next few patches how they're different. The new function should gradually become more similar to bundle2.widen_bundle(), and should perhaps eventually be merged with that function. However, I've left it in narrowbundle2.py for now since it still depends on constants like _KILLNODESIGNAL there. Differential Revision: https://phab.mercurial-scm.org/D7092
Fri, 11 Oct 2019 22:02:44 -0700 tests: show graph log before and after widening in more cases
Martin von Zweigbergk <martinvonz@google.com> [Fri, 11 Oct 2019 22:02:44 -0700] rev 43241
tests: show graph log before and after widening in more cases I'm about to make some changes to which revisions get sent during widening. Some more tests will make it clearer what changes. I've also switched to graph log so we easily notice if the graph shape changes. Differential Revision: https://phab.mercurial-scm.org/D7091
Wed, 19 Jun 2019 18:22:10 -0400 tracing: add a couple of trace points on obsolete and repoview
Augie Fackler <augie@google.com> [Wed, 19 Jun 2019 18:22:10 -0400] rev 43240
tracing: add a couple of trace points on obsolete and repoview I was seeing weird stalls in some fast commands, and these trace events help explain them. Differential Revision: https://phab.mercurial-scm.org/D6550
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.
Sun, 13 Oct 2019 02:10:26 +0200 eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com> [Sun, 13 Oct 2019 02:10:26 +0200] rev 43207
eol: don't fallback to use .hgeol from tip (BC) If no .hgeol were found in the current working directory, eol would fallback to use the one in tip. That could in some cases give very confusing or wrong behaviour when it applied wrong filters. It might be convenient to have plain 'clone' immediately apply 'native' encoding patterns in the cloned repo. But it is wrong to assume that this revision is tip, and even more wrong to also apply it when not cloning - for example when updating between history revisions. The encoding should always match the content of the current .hgeol . It should never use anything else.
Mon, 14 Oct 2019 01:42:24 +0200 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com> [Mon, 14 Oct 2019 01:42:24 +0200] rev 43206
eol: tweak test-eol-clone.t with better descriptions and logging Expose impact of changes coming next ...
Sun, 13 Oct 2019 02:15:07 +0200 eol: fix update - don't use and apply removed .hgeol patterns
Mads Kiilerich <mads@kiilerich.com> [Sun, 13 Oct 2019 02:15:07 +0200] rev 43205
eol: fix update - don't use and apply removed .hgeol patterns 'hg up -C' to revisions with different .hgeol patterns could leave dirty changes in the working directory. That could make deployment of new .hgeol filters tricky: they would "occasionally" apply also in branches where they shouldn't. Fixed by dropping all old patterns before applying new ones.
Sun, 13 Oct 2019 02:11:33 +0200 eol: cache needs update, also if it has same timestamp as the source
Mads Kiilerich <mads@kiilerich.com> [Sun, 13 Oct 2019 02:11:33 +0200] rev 43204
eol: cache needs update, also if it has same timestamp as the source Ignoring same timestamp could (in theory?) cause changes to not be detected. It might happen quite often that the cache is populated right after .hgeol has been updated and they thus have the same time stamp second. But we want correctness, and if it populates the cache so fast, then it can also not be a big problem to run it again next time when the timestamp has moved on.
(0) -30000 -10000 -3000 -1000 -300 -100 -48 +48 +100 +300 +1000 +3000 tip