Tue, 04 Apr 2023 11:58:35 +0200 rust: configure MSRV in Clippy
Georges Racinet <georges.racinet@octobus.net> [Tue, 04 Apr 2023 11:58:35 +0200] rev 50457
rust: configure MSRV in Clippy This setting makes Clippy never apply lints that are meant for later versions. In case the target precise toolchain is the one running, it does not make a difference, but this gives us a machine-parseable specification that is pretty standard. The README and `hg help rust` are updated to state that `clippy.toml` is the single source of truth about that, also lifting a minor ambiguity: it is fine if the MSRV is lagging behind the version in Debian testing.
Tue, 04 Apr 2023 11:47:32 +0200 rust-readme: mentioned that format check is enforced by CI
Georges Racinet <georges.racinet@octobus.net> [Tue, 04 Apr 2023 11:47:32 +0200] rev 50456
rust-readme: mentioned that format check is enforced by CI
Tue, 04 Apr 2023 11:46:26 +0200 rust-readme: mentioning clippy
Georges Racinet <georges.racinet@octobus.net> [Tue, 04 Apr 2023 11:46:26 +0200] rev 50455
rust-readme: mentioning clippy especially since there is a CI check for it.
Tue, 04 Apr 2023 11:44:43 +0200 rust-readme: rst fixes
Georges Racinet <georges.racinet@octobus.net> [Tue, 04 Apr 2023 11:44:43 +0200] rev 50454
rust-readme: rst fixes
Mon, 03 Apr 2023 16:29:30 +0200 rustdoc: nodemap doc refreshing
Georges Racinet <georges.racinet@octobus.net> [Mon, 03 Apr 2023 16:29:30 +0200] rev 50453
rustdoc: nodemap doc refreshing Not pretending to be comprehensive. - correcting some inconsistencies - adding a few missing doc-comments - adding more cross references (in some cases it's right beside the current documentation item, but it will nevertheless also be useful, because `rustdoc` will warn us if inconsistencies arise).
Mon, 03 Apr 2023 16:14:34 +0200 rustdoc: fixed or introduced crossrefs in nodemap.rs
Georges Racinet <georges.racinet@octobus.net> [Mon, 03 Apr 2023 16:14:34 +0200] rev 50452
rustdoc: fixed or introduced crossrefs in nodemap.rs
Mon, 03 Apr 2023 16:03:41 +0200 rustdoc: summary line for hg_path_to_os_string
Georges Racinet <georges.racinet@octobus.net> [Mon, 03 Apr 2023 16:03:41 +0200] rev 50451
rustdoc: summary line for hg_path_to_os_string The main motivation of this change is to avoid the TODO being the summary line, even though this leads to a pretty obvious summary. Then doc-comments for the other functions are introduced for consistency.
Mon, 03 Apr 2023 15:58:36 +0200 rustdoc: wording for checkexec
Georges Racinet <georges.racinet@octobus.net> [Mon, 03 Apr 2023 15:58:36 +0200] rev 50450
rustdoc: wording for checkexec Notably separating the summary line for correct display at module level.
Mon, 03 Apr 2023 15:32:39 +0200 rustdoc: fixed warnings about links
Georges Racinet <georges.racinet@octobus.net> [Mon, 03 Apr 2023 15:32:39 +0200] rev 50449
rustdoc: fixed warnings about links This is the minimal fix making those that actually were supposed to be links to work (including in private items).
Thu, 30 Mar 2023 12:21:38 +0200 rust-changelog: introduce ChangelogEntry parent entries accessors
Georges Racinet <georges.racinet@octobus.net> [Thu, 30 Mar 2023 12:21:38 +0200] rev 50448
rust-changelog: introduce ChangelogEntry parent entries accessors Straightforwards now that lifetimes are explicit in `RevlogEntry` parent accessors.
Thu, 30 Mar 2023 12:20:53 +0200 rust-revlog: fix lifetime problem for RevlogEntry parent entries accessors
Georges Racinet <georges.racinet@octobus.net> [Thu, 30 Mar 2023 12:20:53 +0200] rev 50447
rust-revlog: fix lifetime problem for RevlogEntry parent entries accessors Without this, the lifetime of the result is equated to the lifetime of the `self` reference, preventing callers, e.g., to take a `RevlogEntry` and return its `p1_entry()`, as it looks like returning something that does not outlive the *reference to* the `RevlogEntry`.
Thu, 30 Mar 2023 12:14:57 +0200 rust-revlog: explicit naming for `RevlogEntry` lifetime
Georges Racinet <georges.racinet@octobus.net> [Thu, 30 Mar 2023 12:14:57 +0200] rev 50446
rust-revlog: explicit naming for `RevlogEntry` lifetime This matches what has been done in `revlog::changelog::ChangelogRevisionData`, and has the advantage of making things clearer when we introduce other, shorter lived lifetimes.
Wed, 29 Mar 2023 20:50:42 +0200 rust-changelog: introducing an intermediate `ChangelogEntry`
Georges Racinet <georges.racinet@octobus.net> [Wed, 29 Mar 2023 20:50:42 +0200] rev 50445
rust-changelog: introducing an intermediate `ChangelogEntry` Before this change, client code needing to extract, e.g, the Node ID and the description from a changeset had no other choice than calling both `entry_for_rev()` and `data_for_rev()`. This duplicates some (limited) computation, and more importantly imposes bad hygiene for client code: at some point of developement, the client code would have to pass over both entry and data in its internal layers, which at some point of development would raise the question whether they are consistent. We introduce the intermediate `ChangelogEntry` from which both conversion to the generic `RevlogEntry` and extraction of `ChangelogRevisionData` are possible. It might grow some convenience methods in the future. We keep the `data_for_rev()` method of `Changelog` for compatibility, pointing users at the more powerful alternative.
Wed, 29 Mar 2023 21:03:39 +0200 rust-changelog: added a test for `NULL_REVISION` special case
Georges Racinet <georges.racinet@octobus.net> [Wed, 29 Mar 2023 21:03:39 +0200] rev 50444
rust-changelog: added a test for `NULL_REVISION` special case The result is due to `Revlog.get_rev_data()` returning an empty byte string for `NULL_REVISION`, followed by special case for emtpty byte strings in `ChangelogRevisionData::new()`.
Wed, 29 Mar 2023 20:24:58 +0200 rust-changelog: made doc-comments more consistent
Georges Racinet <georges.racinet@octobus.net> [Wed, 29 Mar 2023 20:24:58 +0200] rev 50443
rust-changelog: made doc-comments more consistent The most important is the one about `data_for_rev`, that looked like a copy-paste leftover (got me confused first time I read this code, before I actually learned there were both `Entry` and RevisionData`. In the comment for the `struct`, "changelog" was probably more about the format in general (as documented elsewhere) than as an identifier. Some of the "Return something" had "of", half had "for".
Tue, 21 Mar 2023 20:47:30 -0400 extras: re-use Projection from jaraco.collections
Jason R. Coombs <jaraco@jaraco.com> [Tue, 21 Mar 2023 20:47:30 -0400] rev 50442
extras: re-use Projection from jaraco.collections
Tue, 21 Mar 2023 17:21:45 -0400 extras: expose 'retained_extras' for extensions to extend
Jason R. Coombs <jaraco@jaraco.com> [Tue, 21 Mar 2023 17:21:45 -0400] rev 50441
extras: expose 'retained_extras' for extensions to extend
Tue, 21 Mar 2023 17:17:09 -0400 extras: extract function for projecting names from a gettable object
Jason R. Coombs <jaraco@jaraco.com> [Tue, 21 Mar 2023 17:17:09 -0400] rev 50440
extras: extract function for projecting names from a gettable object
Sat, 25 Mar 2023 23:02:33 +0100 hgweb: add "children" into the JSON template for a changeset
Manuel Jacob <me@manueljacob.de> [Sat, 25 Mar 2023 23:02:33 +0100] rev 50439
hgweb: add "children" into the JSON template for a changeset The children are shown in the HTML templates, so I don’t see a reason against including them in the JSON template as well.
Fri, 24 Mar 2023 10:43:47 +0100 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Fri, 24 Mar 2023 10:43:47 +0100] rev 50438
branching: merge stable into default
Wed, 22 Mar 2023 15:19:02 +0100 help: fix formatting for http config section
Julien Cristau <jcristau@mozilla.com> [Wed, 22 Mar 2023 15:19:02 +0100] rev 50437
help: fix formatting for http config section
Mon, 20 Mar 2023 23:16:14 +0100 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Mon, 20 Mar 2023 23:16:14 +0100] rev 50436
branching: merge stable into default
Thu, 09 Mar 2023 13:02:13 -0600 fastexport: rework newline logic
Felipe Contreras <felipe.contreras@gmail.com> [Thu, 09 Mar 2023 13:02:13 -0600] rev 50435
fastexport: rework newline logic Newlines should only be added when otherwise the stream would look weird without them (on blobs), therefore they are the exception. Flip the logic so they are added, not skipped.
Mon, 06 Mar 2023 11:27:57 +0000 encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 06 Mar 2023 11:27:57 +0000] rev 50434
encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings Apparently the code uses "+=" with a bytes object, which is linear-time, so the whole encoding is quadratic-time. This patch makes us use a bytearray object, instead, which has a(n amortized-)constant-time append operation. The encoding is still not particularly fast, but at least a 10MB file takes tens of seconds, not many hours to encode.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 tip