Thu, 14 Sep 2023 10:52:09 +0100 revlog: make the rust test for node hex prefix resolution exercise the nodemap stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 14 Sep 2023 10:52:09 +0100] rev 50986
revlog: make the rust test for node hex prefix resolution exercise the nodemap
Wed, 13 Sep 2023 18:28:51 +0100 revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 13 Sep 2023 18:28:51 +0100] rev 50985
revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV The problem is that nodemap already takes care about NULL_NODE resolution (in `validate_candidate` in `nodemap.rs`), so the special handling in `rev_from_node` is unnecessary and incorrect.
Thu, 14 Sep 2023 11:03:41 +0100 tests: reproduce the nullrev bug in an end-to-end test stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 14 Sep 2023 11:03:41 +0100] rev 50984
tests: reproduce the nullrev bug in an end-to-end test
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
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 tip