Wed, 09 Aug 2023 15:46:35 +0200 rust-config: fix incorrect coercion of null values to false
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Aug 2023 15:46:35 +0200] rev 50983
rust-config: fix incorrect coercion of null values to false As explained in the previous changeset: Probably being too trigger happy about boolean values, I incorrectly set the transform for a `None` to a `Some(false)`. It would cause for example the `ui.formatted` value to be set to `Some(false)`, which turns off the colors among other things, when `None` would trigger the automatic behavior.
Wed, 09 Aug 2023 15:44:56 +0200 rust-config: show default `null` is coerced incorrectly to `false`
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Aug 2023 15:44:56 +0200] rev 50982
rust-config: show default `null` is coerced incorrectly to `false` Probably being too trigger happy about boolean values, I incorrectly set the transform for a `None` to a `Some(false)`. It would cause for example the `ui.formatted` value to be set to `Some(false)`, which turns off the colors among other things, when `None` would trigger the automatic behavior. This is fixed in the next commit.
Wed, 09 Aug 2023 15:41:18 +0200 rust-config: fix fallback to default not parsing the default value
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Aug 2023 15:41:18 +0200] rev 50981
rust-config: fix fallback to default not parsing the default value When a config item's default is a string, it sometimes needs to be parsed into another type, like in the case of `cmdserver.max-log-size`, that returns a number of bytes from a human-readable amount like `25MB`. The logic for the fix is explained inline.
Tue, 08 Aug 2023 14:14:00 +0200 rust-config: demonstrate a bug when falling back to non-trivial default values
Raphaël Gomès <rgomes@octobus.net> [Tue, 08 Aug 2023 14:14:00 +0200] rev 50980
rust-config: demonstrate a bug when falling back to non-trivial default values The default value (when the user hasn't configured anything) is not run through the value parser, causing a programming error to happen because of type mismatch. This will be fixed in the next commit.
Fri, 18 Aug 2023 14:34:29 +0200 rust: make `Revision` a newtype
Raphaël Gomès <rgomes@octobus.net> [Fri, 18 Aug 2023 14:34:29 +0200] rev 50979
rust: make `Revision` a newtype This change is the one we've been building towards during this series. The aim is to make `Revision` mean more than a simple integer, holding the information that it is valid for a given revlog index. While this still allows for programmer error, since creating a revision directly and querying a different index with a "checked" revision are still possible, the friction created by the newtype will hopefully make us think twice about which type to use. Enough of the Rust ecosystem relies on the newtype pattern to be efficiently optimized away (even compiler in codegen tests¹), so I'm not worried about this being a fundamental problem. [1] https://github.com/rust-lang/rust/blob/7a70647f195f6b0a0f1ebd72b1542ba91a32f43a/tests/codegen/vec-in-place.rs#L47
Thu, 10 Aug 2023 11:01:07 +0200 rust: implement the `Graph` trait for all revlogs
Raphaël Gomès <rgomes@octobus.net> [Thu, 10 Aug 2023 11:01:07 +0200] rev 50978
rust: implement the `Graph` trait for all revlogs This is trivial and makes all the algorithms relying on the trait usable for more use cases.
Thu, 10 Aug 2023 11:00:34 +0200 rust: use the new `UncheckedRevision` everywhere applicable
Raphaël Gomès <rgomes@octobus.net> [Thu, 10 Aug 2023 11:00:34 +0200] rev 50977
rust: use the new `UncheckedRevision` everywhere applicable This step converts all revisions that shouldn't be considered "valid" in any context to `UncheckedRevison`, allowing `Revision` to be changed for a stronger type in a later changeset. Note that the conversion from unchecked to checked is manual and requires at least some thought from the programmer, although directly using `Revision` is still possible. A later changeset will make this mistake harder to make.
Mon, 11 Sep 2023 11:52:33 +0200 rust-revlog: split logic for `rawdata` to prepare for `UncheckedRevision` use
Raphaël Gomès <rgomes@octobus.net> [Mon, 11 Sep 2023 11:52:33 +0200] rev 50976
rust-revlog: split logic for `rawdata` to prepare for `UncheckedRevision` use In the next changeset, we will change the logic to use `UncheckedRevision` in the non-general delta case. The general delta case will use the "checked" path since `base_rev_or_base_of_delta_chain` will be checked.
Mon, 07 Aug 2023 15:07:48 +0200 rust: remove unused error variant
Raphaël Gomès <rgomes@octobus.net> [Mon, 07 Aug 2023 15:07:48 +0200] rev 50975
rust: remove unused error variant All paths check that the working directory revision is not used.
Mon, 07 Aug 2023 12:53:43 +0200 rust: add `UncheckedRevision` type
Raphaël Gomès <rgomes@octobus.net> [Mon, 07 Aug 2023 12:53:43 +0200] rev 50974
rust: add `UncheckedRevision` type This is the start of a series whose aim is to separate "checked" and "unchecked" revision numbers. A "checked" revision number is valid for a given index, allowing us to have faster algorithms that don't do redundant checks all the time and have a clearer view of the kinds of revisions we're working with.
Mon, 21 Aug 2023 17:57:48 -0400 debugwireproto: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:57:48 -0400] rev 50973
debugwireproto: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:54:01 -0400 debugwireargs: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:54:01 -0400] rev 50972
debugwireargs: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:49:57 -0400 debugwalk: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:49:57 -0400] rev 50971
debugwalk: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:47:52 -0400 debug_revlog_stats: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:47:52 -0400] rev 50970
debug_revlog_stats: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:46:44 -0400 debugbackupbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:46:44 -0400] rev 50969
debugbackupbundle: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:43:52 -0400 debugsidedata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:43:52 -0400] rev 50968
debugsidedata: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:41:01 -0400 debugserve: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:41:01 -0400] rev 50967
debugserve: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:39:22 -0400 debugrevspec: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:39:22 -0400] rev 50966
debugrevspec: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:36:36 -0400 debugrevlogindex: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:36:36 -0400] rev 50965
debugrevlogindex: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:35:13 -0400 debugrevlog: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:35:13 -0400] rev 50964
debugrevlog: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:34:13 -0400 debugrename: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:34:13 -0400] rev 50963
debugrename: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:33:00 -0400 debugrebuildfncache: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:33:00 -0400] rev 50962
debugrebuildfncache: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:31:53 -0400 debugpickmergetool: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:31:53 -0400] rev 50961
debugpickmergetool: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:29:56 -0400 debugp2copies: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:29:56 -0400] rev 50960
debugp2copies: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:29:05 -0400 debugp1copies: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:29:05 -0400] rev 50959
debugp1copies: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:26:56 -0400 debugobsolete: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:26:56 -0400] rev 50958
debugobsolete: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:23:16 -0400 debugmergestate: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:23:16 -0400] rev 50957
debugmergestate: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:20:14 -0400 debugknown: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:20:14 -0400] rev 50956
debugknown: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:18:56 -0400 debuginstall: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:18:56 -0400] rev 50955
debuginstall: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:16:43 -0400 debugindexdot: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:16:43 -0400] rev 50954
debugindexdot: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:15:30 -0400 debuggetbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:15:30 -0400] rev 50953
debuggetbundle: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:14:18 -0400 debugformat: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:14:18 -0400] rev 50952
debugformat: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:12:03 -0400 debugfileset: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:12:03 -0400] rev 50951
debugfileset: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:09:45 -0400 debugextensions: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:09:45 -0400] rev 50950
debugextensions: migrate `opts` to native kwargs
Mon, 21 Aug 2023 17:06:47 -0400 debugdiscovery: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 17:06:47 -0400] rev 50949
debugdiscovery: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:58:23 -0400 debugdeltafind: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:58:23 -0400] rev 50948
debugdeltafind: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:56:38 -0400 debugdeltachain: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:56:38 -0400] rev 50947
debugdeltachain: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:53:16 -0400 debugdata: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:53:16 -0400] rev 50946
debugdata: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:51:07 -0400 debugcapabilities: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:51:07 -0400] rev 50945
debugcapabilities: migrate `opts` to native kwargs
Mon, 21 Aug 2023 16:19:51 -0400 debugbundle: migrate `opts` to native kwargs
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 16:19:51 -0400] rev 50944
debugbundle: migrate `opts` to native kwargs This is a utility function that's only called by `debugbundle()`. The rest of the command was previously ported.
Fri, 08 Sep 2023 20:34:41 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Sep 2023 20:34:41 +0200] rev 50943
branching: merge with stable
Wed, 21 Jun 2023 21:57:44 +0200 tags: avoid expensive access to repo.changelog in a loop stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2023 21:57:44 +0200] rev 50942
tags: avoid expensive access to repo.changelog in a loop repo.changelog needs some cache invalidation when run on filtered repository. Accessing it in that loop can be expensive when there is many heads (e.g. mozilla try and it 25 000 heads). Note that the loop itself seems useless, but after this patch it no longer take about ⅛ of the time we spend computing cache for mozilla try. before : ! wall 0.350994 comb 0.350000 user 0.330000 sys 0.020000 (median of 28) after : ! wall 0.319520 comb 0.310000 user 0.290000 sys 0.020000 (median of 30)
Thu, 22 Jun 2023 19:41:26 +0200 blackbox: add a option to duplicate output to stderr too stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2023 19:41:26 +0200] rev 50941
blackbox: add a option to duplicate output to stderr too This is useful when debugging some performance operation.
Fri, 23 Jun 2023 17:22:42 +0200 perf: add a --update-last flag to perf::tags stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Jun 2023 17:22:42 +0200] rev 50940
perf: add a --update-last flag to perf::tags See inline documentation for details.
Thu, 22 Jun 2023 18:39:29 +0200 perf: add a `--clear-fnode-cache-rev` argument to perf::tags stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2023 18:39:29 +0200] rev 50939
perf: add a `--clear-fnode-cache-rev` argument to perf::tags This will help us test this in situation closer to an update after a commit or a push.
Thu, 22 Jun 2023 16:03:18 +0200 perf: introduce more cache invalidation option in perf::tags stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2023 16:03:18 +0200] rev 50938
perf: introduce more cache invalidation option in perf::tags This will help us to assert the performance of different versions in more diverse situations. We introduce helper function in the tags module in case invalidating such cache becomes different in the future.
Fri, 08 Sep 2023 15:33:03 +0200 hgweb: pass strings in WSGI environment correctly from wsgicgi stable
Manuel Jacob <me@manueljacob.de> [Fri, 08 Sep 2023 15:33:03 +0200] rev 50937
hgweb: pass strings in WSGI environment correctly from wsgicgi According to PEP 3333, the strings in the WSGI environment must be translatable to bytes using the ISO-8859-1 codec.
Wed, 06 Sep 2023 18:12:27 +0200 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:12:27 +0200] rev 50936
branching: merge stable into default
Wed, 06 Sep 2023 18:11:12 +0200 Added signature for changeset 5a8b54201039 stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:11:12 +0200] rev 50935
Added signature for changeset 5a8b54201039
Wed, 06 Sep 2023 18:11:10 +0200 Added tag 6.5.2 for changeset 5a8b54201039 stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:11:10 +0200] rev 50934
Added tag 6.5.2 for changeset 5a8b54201039
Wed, 06 Sep 2023 18:10:44 +0200 relnotes: add 6.5.2 stable 6.5.2
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:10:44 +0200] rev 50933
relnotes: add 6.5.2
Wed, 30 Aug 2023 12:24:12 +0200 run-tests: detect HGWITHRUSTEXT value stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:24:12 +0200] rev 50932
run-tests: detect HGWITHRUSTEXT value Without this, some manual check in tests/test-dirstate.t could get confused by the lack of `rust` in module policy and break the test.
Wed, 30 Aug 2023 11:31:05 +0100 tests: avoid test environment affecting setup.py stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 30 Aug 2023 11:31:05 +0100] rev 50931
tests: avoid test environment affecting setup.py In particular [RHG_FALLBACK_EXECUTABLE] is being set prematurely, before rhg is built, but probably the rest of the env changes don't help, either.
Mon, 04 Sep 2023 13:33:32 +0100 setup: make the error "Unable to find a working hg binary" more informative stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 04 Sep 2023 13:33:32 +0100] rev 50930
setup: make the error "Unable to find a working hg binary" more informative The error message now shows the attempted hg commands and their stderr, to make it easier to investigate why things are not working. Here's an example output /!\ /!\ Unable to find a working hg binary /!\ Version cannot be extracted from the repository /!\ Re-run the setup once a first version is built /!\ Attempts: /!\ attempt #0: /!\ cmd: ['hg-missing', 'log', '-r.', '-Ttest'] /!\ exception: [Errno 2] No such file or directory: 'hg-missing': 'hg-missing' /!\ attempt #1: /!\ cmd: ['/usr/bin/python3', 'hg', 'log', '-r.', '-Ttest'] /!\ return code: 255 /!\ std output: /!\ std error: *** failed to import extension "topic": No module named 'topic' *** failed to import extension "evolve": No module named 'evolve' abort: accessing `dirstate-v2` repository without associated fast implementation. (check `hg help config.format.use-dirstate-v2` for details) /!\ /!\ Could not determine the Mercurial version /!\ You need to build a local version first /!\ Run `make local` and try again /!\
Fri, 01 Sep 2023 00:09:55 +0200 pycompat: drop usage of hasattr/getattr/setattr/delatt proxy
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2023 00:09:55 +0200] rev 50929
pycompat: drop usage of hasattr/getattr/setattr/delatt proxy The function remains to ease extensions transition, but we no longer use them in core.
Thu, 31 Aug 2023 23:56:15 +0200 safehasattr: drop usage in favor of hasattr
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 31 Aug 2023 23:56:15 +0200] rev 50928
safehasattr: drop usage in favor of hasattr The two functions should now be equivalent at least in their usage in core.
(0) -30000 -10000 -3000 -1000 -300 -100 -56 +56 +100 +300 +1000 tip