Mon, 13 Feb 2023 18:11:48 +0100 rust-config: add config getters that don't fall back to defaults
Raphaël Gomès <rgomes@octobus.net> [Mon, 13 Feb 2023 18:11:48 +0100] rev 50803
rust-config: add config getters that don't fall back to defaults This is useful in cases where we access config items that are more... lenient with their types than a fresh new system would allow. For now there is only a single use of this, but we might get more later.
Thu, 06 Jul 2023 14:32:07 +0200 rust-config: add support for default config items
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 14:32:07 +0200] rev 50802
rust-config: add support for default config items Now that configitems.toml exists, we can read from it the default values for all core config items. We will add the devel-warning for use of undeclared config items in a later patch when we're done adding the missing entries for `rhg`.
Mon, 23 Jan 2023 18:08:11 +0100 configitems: declare items in a TOML file
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Jan 2023 18:08:11 +0100] rev 50801
configitems: declare items in a TOML file Mercurial ships with Rust code that also needs to read from the config. Having a way of presenting `configitems` to both Python and Rust is needed to prevent duplication, drift, and have the appropriate devel warnings. Abstracting away from Python means choosing a config format. No single format is perfect, and I have yet to come across a developer that doesn't hate all of them in some way. Since we have a strict no-dependencies policy for Mercurial, we either need to use whatever comes with Python, vendor a library, or implement a custom format ourselves. Python stdlib means using JSON, which doesn't support comments and isn't great for humans, or `configparser` which is an obscure, untyped format that nobody uses and doesn't have a commonplace Rust parser. Implementing a custom format is error-prone, tedious and subject to the same issues as picking an existing format. Vendoring opens us to the vast array of common config formats. The ones being picked for most modern software are YAML and TOML. YAML is older and common in the Python community, but TOML is much simpler and less error-prone. I would much rather be responsible for the <1000 lines of `tomli`, on top of TOML being the choice of the Rust community, with robust crates for reading it. The structure of `configitems.toml` is explained inline.
Mon, 23 Jan 2023 17:11:42 +0100 thirdparty: vendor tomli
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Jan 2023 17:11:42 +0100] rev 50800
thirdparty: vendor tomli The next commit will introduce a .toml file to abstract configitems away from Python. Python 3.11 has a toml read-only library (`tomllib`), which gives us a way out of vendoring eventually. For now, we vendor the backport, specifically version 1.2.3 which is still compatible with Python 3.6.
Mon, 23 Jan 2023 18:52:05 +0100 configitems: add `documentation` field
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Jan 2023 18:52:05 +0100] rev 50799
configitems: add `documentation` field It may be useful to expose documentation information in the help in some form. This will be populated in a future changeset by using the current comments that are relevant for users.
Mon, 23 Jan 2023 17:21:14 +0100 configitems: use standard "dynamicdefault" approach in edge case
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Jan 2023 17:21:14 +0100] rev 50798
configitems: use standard "dynamicdefault" approach in edge case This makes for fewer edge cases, which will help a future patch.
Tue, 17 Jan 2023 14:53:18 +0100 configitems: fix typo in devel warning about extension overrides
Raphaël Gomès <rgomes@octobus.net> [Tue, 17 Jan 2023 14:53:18 +0100] rev 50797
configitems: fix typo in devel warning about extension overrides
Thu, 06 Jul 2023 16:07:34 +0200 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 16:07:34 +0200] rev 50796
branching: merge stable into default
Mon, 06 Nov 2023 15:38:27 +0100 Added signature for changeset c083d9776cb2 stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 06 Nov 2023 15:38:27 +0100] rev 50795
Added signature for changeset c083d9776cb2
Mon, 06 Nov 2023 15:38:15 +0100 Added tag 6.5.3 for changeset c083d9776cb2 stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 06 Nov 2023 15:38:15 +0100] rev 50794
Added tag 6.5.3 for changeset c083d9776cb2
Mon, 06 Nov 2023 15:32:30 +0100 relnotes: add 6.5.3 stable 6.5.3
Raphaël Gomès <rgomes@octobus.net> [Mon, 06 Nov 2023 15:32:30 +0100] rev 50793
relnotes: add 6.5.3
Sat, 14 Oct 2023 03:24:13 +0200 revlog: avoid opening and closing the file for each cloned revision stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 14 Oct 2023 03:24:13 +0200] rev 50792
revlog: avoid opening and closing the file for each cloned revision The previous code was flushing files after each new revision, slowing things down. For exemple, with this change, the evolve repository can run `hg debugupgraderepo --run --optimize re-delta-parent` in about 3.4s instead of 4.5 seconds.
Fri, 13 Oct 2023 23:21:46 +0200 censor: accept censored revision during upgrade stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 23:21:46 +0200] rev 50791
censor: accept censored revision during upgrade They can simply be passed by as censored.
Fri, 13 Oct 2023 22:40:10 +0200 censor: show that censored revision prevent repository upgrade stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 22:40:10 +0200] rev 50790
censor: show that censored revision prevent repository upgrade This is not great.
Thu, 12 Oct 2023 17:41:06 +0100 stream-clone: fix a crash when a repo with an empty revlog is cloned stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 12 Oct 2023 17:41:06 +0100] rev 50789
stream-clone: fix a crash when a repo with an empty revlog is cloned
Tue, 10 Oct 2023 18:29:04 +0200 cleanup: typos, formatting stable
Joerg Sonnenberger <joerg@bec.de> [Tue, 10 Oct 2023 18:29:04 +0200] rev 50788
cleanup: typos, formatting
Sun, 24 Sep 2023 04:35:02 +0200 tests: backed out changeset 8037ddacad47 stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Sep 2023 04:35:02 +0200] rev 50787
tests: backed out changeset 8037ddacad47 This issue with 3.11 was real, but it eventually got fixed after people started building exploit and filling CVE See https://github.com/python/cpython/issues/106242 And https://github.com/python/cpython/pull/106816
Thu, 05 Oct 2023 14:47:42 -0300 httppeer: fix static-http: scheme autodetection (issue6833) stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 Oct 2023 14:47:42 -0300] rev 50786
httppeer: fix static-http: scheme autodetection (issue6833) Since statichttprepo.make_peer() assumes path is a urlutil.path object (by accessing path.loc), we no longer can just provide a bytestring there. See also 5f71fff8dc74 and cfe8d88a453e.
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 50785
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 50784
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 50783
tests: reproduce the nullrev bug in an end-to-end test
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 50782
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 50781
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 50780
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 50779
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 50778
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 50777
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: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 50776
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 50775
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 50774
relnotes: add 6.5.2
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 tip