Fri, 28 Feb 2020 00:31:14 +0100 nodemap: make sure the nodemap docket is updated after the changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 28 Feb 2020 00:31:14 +0100] rev 44527
nodemap: make sure the nodemap docket is updated after the changelog It is better to have a lagging nodemap than a nodemap pointing to node that does not exists yet. (strictly speaking, the order was already right, however we make it more explicit). Differential Revision: https://phab.mercurial-scm.org/D8188
Fri, 28 Feb 2020 00:29:18 +0100 nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 28 Feb 2020 00:29:18 +0100] rev 44526
nodemap: make sure hooks have access to an up-to-date version We make sure hooks can read persistent nodemap data and that they access something up-to-date with the pending transaction. Differential Revision: https://phab.mercurial-scm.org/D8187
Thu, 27 Feb 2020 16:32:43 +0100 nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 Feb 2020 16:32:43 +0100] rev 44525
nodemap: track the tip_node for validation Differential Revision: https://phab.mercurial-scm.org/D8184
Thu, 27 Feb 2020 15:42:04 +0100 nodemap: add a todo list for getting out of experimental
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 Feb 2020 15:42:04 +0100] rev 44524
nodemap: add a todo list for getting out of experimental This is all the requirement I can think off. More might be added as they emerge. The first ones are mostly simple technical matters that will be taken care of soon. The question about the "status" of the persistent nodemap and the revlogs that will use it requires more discussion and thinking. Differential Revision: https://phab.mercurial-scm.org/D8181
Tue, 18 Feb 2020 15:19:11 +0100 rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Feb 2020 15:19:11 +0100] rev 44523
rust-nodemap: automatically use the rust index for persistent nodemap The persistent nodemap requires the rust index to be used to provides any gains. So we automatically enable it for revlog using the persistent nodemap. We keep it off for other revset because now that the rust revlog fully initialise the nodemap using it everywhere introduce a fairly significant regression (eg: hg diff moving from 0.8s to 2.3s on mozilla-try) Differential Revision: https://phab.mercurial-scm.org/D8164
Tue, 18 Feb 2020 18:32:55 +0100 nodemap: use data from the index in debugnodemap --dump-new
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Feb 2020 18:32:55 +0100] rev 44522
nodemap: use data from the index in debugnodemap --dump-new It is better to run the actual code when generating a new nodemap cache from scratch. So we do. Differential Revision: https://phab.mercurial-scm.org/D8163
Wed, 12 Feb 2020 10:53:24 +0100 rust-nodemap: also clear Rust data in `clearcaches`
Georges Racinet <georges.racinet@octobus.net> [Wed, 12 Feb 2020 10:53:24 +0100] rev 44521
rust-nodemap: also clear Rust data in `clearcaches` Differential Revision: https://phab.mercurial-scm.org/D8161
Wed, 12 Feb 2020 10:53:19 +0100 rust-nodemap: add binding to `nodemap_update_data`
Georges Racinet <georges.racinet@octobus.net> [Wed, 12 Feb 2020 10:53:19 +0100] rev 44520
rust-nodemap: add binding to `nodemap_update_data` Differential Revision: https://phab.mercurial-scm.org/D8160
Wed, 12 Feb 2020 10:52:30 +0100 rust-nodemap: add binding for `nodemap_data_incremental`
Georges Racinet <georges.racinet@octobus.net> [Wed, 12 Feb 2020 10:52:30 +0100] rev 44519
rust-nodemap: add binding for `nodemap_data_incremental` Differential Revision: https://phab.mercurial-scm.org/D8159
Wed, 12 Feb 2020 10:51:17 +0100 rust-nodemap: add binding for `nodemap_data_all`
Georges Racinet <georges.racinet@octobus.net> [Wed, 12 Feb 2020 10:51:17 +0100] rev 44518
rust-nodemap: add binding for `nodemap_data_all` Differential Revision: https://phab.mercurial-scm.org/D8158
Wed, 12 Feb 2020 10:33:55 +0100 rust-nodemap: use proper Index API instead of using the C API
Raphaël Gomès <rgomes@octobus.net> [Wed, 12 Feb 2020 10:33:55 +0100] rev 44517
rust-nodemap: use proper Index API instead of using the C API Differential Revision: https://phab.mercurial-scm.org/D8157
Tue, 11 Feb 2020 16:30:28 +0100 rust-nodemap: add utils for propagating errors
Georges Racinet <georges.racinet@octobus.net> [Tue, 11 Feb 2020 16:30:28 +0100] rev 44516
rust-nodemap: add utils for propagating errors This also updates the copyright notice Differential Revision: https://phab.mercurial-scm.org/D8156
Tue, 11 Feb 2020 16:25:45 +0100 rust-nodemap: add utils to create `Node`s from Python objects
Georges Racinet <georges.racinet@octobus.net> [Tue, 11 Feb 2020 16:25:45 +0100] rev 44515
rust-nodemap: add utils to create `Node`s from Python objects Differential Revision: https://phab.mercurial-scm.org/D8155
Tue, 11 Feb 2020 16:23:06 +0100 rust-index: add `append` method to cindex/Index
Georges Racinet <georges.racinet@octobus.net> [Tue, 11 Feb 2020 16:23:06 +0100] rev 44514
rust-index: add `append` method to cindex/Index This will be used by `MixedIndex` in a later patch. Differential Revision: https://phab.mercurial-scm.org/D8154
Mon, 13 Jan 2020 19:56:16 +0100 rust-index: moved constructor in separate impl block
Georges Racinet <georges.racinet@octobus.net> [Mon, 13 Jan 2020 19:56:16 +0100] rev 44513
rust-index: moved constructor in separate impl block with the upcoming addition of the nodemap logic, it's going to become more complicated. Being in the separate impl block has the advantage to be subject to rustfmt, whereas code inside macro calls isn't. Differential Revision: https://phab.mercurial-scm.org/D8153
Mon, 13 Jan 2020 19:31:33 +0100 revlog: using two new functions in C capsule from Rust code
Georges Racinet <georges.racinet@octobus.net> [Mon, 13 Jan 2020 19:31:33 +0100] rev 44512
revlog: using two new functions in C capsule from Rust code We expose `index_length` and `index_node` in the C capsule, so that the Rust representation of the C index can implement the `RevlogIndex` trait. Because our `Node` is actually a one-field struct, we have to decorate it for direct FFI exchange with the C `char*` It would be a good thing to get a length from the C layer, but doing so right now would probably interfere with the upcoming changes that will happen there for the hash length. Differential Revision: https://phab.mercurial-scm.org/D8152
Tue, 18 Feb 2020 19:11:14 +0100 nodemap: refresh the persistent data on nodemap creation
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Feb 2020 19:11:14 +0100] rev 44511
nodemap: refresh the persistent data on nodemap creation The logic to read the data and validate the docket are still in python, so we need to "help" whatever compiled code live in the index to refresh it. Otherwise clearing the cache could lead to an expensive full recomputation and disk update even when the persisted data are still valid. Differential Revision: https://phab.mercurial-scm.org/D8174
Wed, 11 Mar 2020 05:41:02 +0100 tests: check availability of pyflakes by trying to import pyflakes module
Manuel Jacob <me@manueljacob.de> [Wed, 11 Mar 2020 05:41:02 +0100] rev 44510
tests: check availability of pyflakes by trying to import pyflakes module Since e397c6d74652, we use the pyflakes module instead of the pyflakes executable. As was pointed out during the review, the hghave check can be rewritten to try to import the pyflakes module instead of spawning a new subprocess.
Thu, 27 Feb 2020 22:34:45 +0100 nodemap: deal with the "debugupdatecache" case using a "fake" transaction
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 Feb 2020 22:34:45 +0100] rev 44509
nodemap: deal with the "debugupdatecache" case using a "fake" transaction We are going to need more and more methods of the transaction. So lets change approach. The `hg debugupdatecache` case do not need a transaction, because has the repositories locked, but is not adding any "store" data to it. Differential Revision: https://phab.mercurial-scm.org/D8186
Fri, 28 Feb 2020 01:45:03 +0100 changelog: change the implementation of `_divertopener`
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 28 Feb 2020 01:45:03 +0100] rev 44508
changelog: change the implementation of `_divertopener` During a transaction, new data to the changelog index are "diverted". The previous implementat ways pretty basic, we need something better to be able to use the changelog vfs fully during transaction. (eg: accessing the vfs options). Differential Revision: https://phab.mercurial-scm.org/D8185
Thu, 27 Feb 2020 17:08:59 +0100 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 Feb 2020 17:08:59 +0100] rev 44507
nodemap: test that an outdated nodemap can catch up If the persistent nodemap does not contains all revision that the index contains, this is should be detected and dealt with. We add a test for this case. Differential Revision: https://phab.mercurial-scm.org/D8183
Thu, 27 Feb 2020 16:09:17 +0100 nodemap: document the docket attributes
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 Feb 2020 16:09:17 +0100] rev 44506
nodemap: document the docket attributes More documentation rarely hurts. Differential Revision: https://phab.mercurial-scm.org/D8182
Tue, 10 Mar 2020 13:10:53 -0400 git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com> [Tue, 10 Mar 2020 13:10:53 -0400] rev 44505
git: key off `git` in .hg/requires rather than separate file Differential Revision: https://phab.mercurial-scm.org/D8265
Tue, 10 Mar 2020 13:10:45 -0400 git: correctly handle p1() on dirstate when underlying git repo is empty
Augie Fackler <raf@durin42.com> [Tue, 10 Mar 2020 13:10:45 -0400] rev 44504
git: correctly handle p1() on dirstate when underlying git repo is empty This shows up in my next change, which ends up making an empty git repo and then running hg. Differential Revision: https://phab.mercurial-scm.org/D8271
Tue, 10 Mar 2020 14:24:08 +0100 rust: clean remains of direct-ffi code
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Mar 2020 14:24:08 +0100] rev 44503
rust: clean remains of direct-ffi code Since b55bec1ea972, the cext entry poitn have been removed, so we drop the code for consistency.
Fri, 06 Mar 2020 17:02:50 +0100 heptapod-ci: use the new `--rust/--no-rust` flag to run the tests
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Mar 2020 17:02:50 +0100] rev 44502
heptapod-ci: use the new `--rust/--no-rust` flag to run the tests
Fri, 06 Mar 2020 11:16:15 +0100 run-tests: add option for running with and without Rust extensions
Raphaël Gomès <rgomes@octobus.net> [Fri, 06 Mar 2020 11:16:15 +0100] rev 44501
run-tests: add option for running with and without Rust extensions This provide a simple and clear way to run the test with or without rust.
Fri, 06 Mar 2020 16:24:50 +0100 run-tests: rename "pure" variable to setup_opts
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Mar 2020 16:24:50 +0100] rev 44500
run-tests: rename "pure" variable to setup_opts There are more useful flag than just `--pure`. We clarify the variable name before adding more options.
Fri, 06 Mar 2020 16:06:30 +0100 setup-rust: add a --no-rust flag
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Mar 2020 16:06:30 +0100] rev 44499
setup-rust: add a --no-rust flag This new flag will make sure the rust extension will not be build. If neither `--rust` nor `--no-rust` is specified the `HGWITHRUSTEXT` is used.
Mon, 09 Mar 2020 17:26:30 +0100 cext: drop the WITH_RUST block
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 09 Mar 2020 17:26:30 +0100] rev 44498
cext: drop the WITH_RUST block These were used by the `direct-ffi` mode that just got dropped.
Mon, 09 Mar 2020 17:16:44 +0100 setup: use printf instead of print
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 09 Mar 2020 17:16:44 +0100] rev 44497
setup: use printf instead of print Yuya Nishihara pointed `printf` to me, so I will respect the cargo cult.
Mon, 09 Mar 2020 11:18:33 -0700 git: don't fail import when pygit2 is not install
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Mar 2020 11:18:33 -0700] rev 44496
git: don't fail import when pygit2 is not install `test-duplicateoptions.py` was failing on py2 for be because I didn't have pygit2 installed. It failed because we depend on pygit2 at import time. This patch makes it so we successfully load the git extension even if pygit2 doesn't exist -- we just won't be able to use it in that case. Differential Revision: https://phab.mercurial-scm.org/D8268
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 tip