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.
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 tip