Mon, 17 Apr 2023 09:38:52 -0400 library: enable runpy invocation on mercurial package
Jason R. Coombs <jaraco@jaraco.com> [Mon, 17 Apr 2023 09:38:52 -0400] rev 50696
library: enable runpy invocation on mercurial package
Mon, 12 Jun 2023 16:51:08 +0200 match: add `filepath:` pattern to match an exact filepath relative to the root
Raphaël Gomès <rgomes@octobus.net> [Mon, 12 Jun 2023 16:51:08 +0200] rev 50695
match: add `filepath:` pattern to match an exact filepath relative to the root It's useful in certain automated workflows to make sure we recurse in directories whose name conflicts with files in other revisions. In addition it makes it possible to avoid building a potentially costly regex, improving performance when the set of files to match explicitly is large. The benchmark below are run in the following configuration : # data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = files # benchmark.variants.rev = tip # benchmark.variants.files = all-list-filepath-sorted # bin-env-vars.hg.flavor = no-rust It also includes timings using the re2 engine (through the `google-re2` module) to show how much can be saved by just using a better regexp engine. Pattern time (seconds) time using re2 ----------------------------------------------------------- just "." 0.4 0.4 list of "filepath:…" 1.3 1.3 list of "path:…" 25.7 3.9 list of patterns 29.7 10.4 As you can see, Without re2, using "filepath:" instead of "path:" is a huge win. With re2, it is still about three times faster to not have to build the regex.
Sun, 18 Jun 2023 00:09:39 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 18 Jun 2023 00:09:39 +0200] rev 50694
branching: merge with stable
Tue, 20 Jun 2023 02:36:52 +0200 backout: remove db9b6ce803a9
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 20 Jun 2023 02:36:52 +0200] rev 50693
backout: remove db9b6ce803a9 That changeset lost its topic for unknown reason and ended up being picked by some automation. So I backout it previous incarnation until it can get properly reviewed.
Mon, 19 Jun 2023 23:27:18 +0200 infinitepush: aggressively deprecated infinite push
pierre-yves.david@ens-lyon.org [Mon, 19 Jun 2023 23:27:18 +0200] rev 50692
infinitepush: aggressively deprecated infinite push We add a large warning and an explicit abort. Both can be disable through config, but neither are explicitly documented. If any user exists I really want them to get in touch with the community.
Tue, 13 Jun 2023 14:35:36 +0200 rust-dependencies: switch from `users` to `whoami`
Raphaël Gomès <rgomes@octobus.net> [Tue, 13 Jun 2023 14:35:36 +0200] rev 50691
rust-dependencies: switch from `users` to `whoami` `users` is unmaintained, with the maintainer apparently MIA. `whoami` is a popular crate that does simple wrapping of platform-specific calls. This makes the overhead from using `blackbox` lower. It used to be up 10ms on slower hardware for both calls, now down to <1ms which is always good.
Mon, 12 Jun 2023 23:41:28 +0200 rust-hg-core: move from `ouroboros` to `self_cell`
Raphaël Gomès <rgomes@octobus.net> [Mon, 12 Jun 2023 23:41:28 +0200] rev 50690
rust-hg-core: move from `ouroboros` to `self_cell` `ouroboros` has a fundamental soundness problem that, while not applicable today, could become applicable given new compiler optimizations.¹ `self_cell` is a crate that accomplishes a lot of the same things that `ouroboros` did while remaining sound (that is, unless a new soundness issue is discovered) by not assuming as much about the memory layout of the program. `self_cell` has been scrutinized heavily in the past few months by very competent people, some from the compiler team and has shown no weaknesses for a while, with a 1.0 stable release coming out a couple months ago. Our internal API is exactly the same, this is just an implementation detail. To reiterate, no actual soundness issue was found with our use of `ouroboros`, but there might be evolutions of `rustc` (or even a future separate compiler) that could generate unsound code. [1] https://github.com/joshua-maros/ouroboros/issues/88
Fri, 02 Jun 2023 15:12:05 +0200 debug-revlog-stats: make it use the new store entry API
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jun 2023 15:12:05 +0200] rev 50689
debug-revlog-stats: make it use the new store entry API This give use free tree manifest support in the process.
Fri, 02 Jun 2023 15:10:50 +0200 store: use the revlog type from revlog's constant instead of custom one
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jun 2023 15:10:50 +0200] rev 50688
store: use the revlog type from revlog's constant instead of custom one We already have a revlog type that everybody use. So we use that one instead.
Mon, 12 Jun 2023 23:24:41 +0200 repair: use `is_manifestlog` to recognise manifest revlog
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 12 Jun 2023 23:24:41 +0200] rev 50687
repair: use `is_manifestlog` to recognise manifest revlog This is simpler that comparing flag, and we want to remove these flags anyway.
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 tip