Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:33:22 +0200] rev 50998
openvms: fix the pager spawning and cleanup
Unsurprisingly, pager handling needs some adjustment.
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:32:28 +0200] rev 50997
openvms: make process spawning works on OpenVMS
We need to adjust some behavior for OpenVMS.
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:34:17 +0200] rev 50996
openvms: mark symlink as unsupported on OpenVMS
OpenVMS's symlink emulation is broken on some OpenVMS versions, so we better
disable them altogether for now.
Jean-Francois Pieronne <jf.pieronne@laposte.net> [Thu, 03 Aug 2023 02:28:52 +0200] rev 50995
openvms: duck-punch a bugfix into `environb` object
The official Python3 build for OpenVMS has some crippling bug that we need to
patch dynamically
OpenVMS patches
Joerg Sonnenberger <joerg@bec.de> [Wed, 11 Oct 2023 00:43:24 +0200] rev 50994
fastexport: simplify code
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Oct 2023 02:02:46 +0200] rev 50993
branching: merge stable into default
Joerg Sonnenberger <joerg@bec.de> [Tue, 10 Oct 2023 18:29:04 +0200] rev 50992
cleanup: typos, formatting
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Sep 2023 04:35:02 +0200] rev 50991
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
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 Oct 2023 14:47:42 -0300] rev 50990
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.
Raphaël Gomès <rgomes@octobus.net> [Wed, 25 Jan 2023 15:34:27 +0100] rev 50989
admin-command: add verify command
Start using the 'admin' namespace by adding a 'verify' command.
Invocation is 'admin::verify'.
The idea is to progressively add more focused checks than the existing
verify command.
To do so we need an advanced way to express what we want to check.
The first check for admin::verify is 'working-copy.dirstate' which has
no options, because it was an easy first check to implement, which
verifies the integrity of the dirstate.
This changeset was created with the help of Franck Bret.
Raphaël Gomès <rgomes@octobus.net> [Wed, 13 Sep 2023 12:25:51 +0200] rev 50988
transaction: abstract away the detection of an abandoned transaction
We're about to add another place where this is used, let's not spill this
implementation detail.
Franck Bret <franck.bret@octobus.net> [Wed, 25 Jan 2023 15:33:39 +0100] rev 50987
commands: add admin namespace
In order to stop abusing the 'debug' namespace for non-debug command,
it adds a new 'admin' namespace dedicated to 'admin' operations on a
repository (i.e commands suitable for administration tasks).
This namespace entry would be used to migrate in the future some
existing commands from the 'debug' namespace, or other top level
commands that may not be directly exposed to end users.
(verify command is a perfect candidate for this case)
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
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.