Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 May 2023 21:43:45 +0200] rev 50450
revlog: test more complex file pattern for revlog split
There have been a report of failure while splitting revlog. The file name
involved was important. The pattern involved here are not problematic, but it
help to setup the machinery to test multiple files, the actual fix and
problematic file will arrive in a later changeset.
Raphaël Gomès <rgomes@octobus.net> [Tue, 02 May 2023 15:40:13 +0200] rev 50449
repo-upgrade: write new requirement before upgrading the dirstate
This will prevent a small race condition where another hg process still
believes the repo is dirstate-v1 during the upgrade process.
This is good to have, but it is not a proper fix for the underlying problem.
There is code that assumes a requirement means a usage, e.g. having the
`generaldelta` requirement would imply *all* revlogs to use general delta,
but it's not true, it simply means that the repository advertises to the
client it needs to understand `generaldelta` in order to read the repo.
In the case of the dirstate, having the requirement *technically* should always
be the same as using dirstate-v2, since there is only one dirstate and
requirements should be as minimal as possible. However, we should not assume
this and make the code more robust in a future patch (series).
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 28 Apr 2023 16:28:43 +0200] rev 50448
perf: introduce a `perf::stream-locked-section` command
This command benchmark the initial part of a stream clone, where the repository
is locked.
Anton Shestakov <av6@dwimlabs.net> [Wed, 03 May 2023 18:17:32 -0300] rev 50447
transaction: tr._names are actually bytes, use byte string to join them
Looks like this is never checked in the tests? But trying e.g. `print(tr)` by
hand before this change would give:
TypeError: sequence item 0: expected str instance, bytes found
Looks like tr._names are always bytes (although this isn't actually enforced,
but maybe at some point it will at least be type checked e.g. by pytype).
pacien <pacien.trangirard@pacien.net> [Mon, 17 Apr 2023 00:27:46 +0200] rev 50446
nix: add nix-defined package and devel env (flake)
This adds a Nix Flake which defines:
- package recipies to build and run Mercurial (C, C+Rust variants),
- a meta package to run the test suite in an isolated sandbox,
- a development environment with some tools
(notably Python and the Black formatter, pinned to match the CI).
Python is pinned to the recommended version.
The Rust toolchain is a fairly recent one provided by the Nixpkgs channel.
It is not yet pinned to the same version as the "reference" Debian package,
but this does not seem to cause any issue.
Example usage of local commands are provided in the `flake.nix` file.
Once merged, it should also be possible to pull and run directly from the
source repository directly with something like:
`nix run hg+https://foss.heptapod.net/mercurial/mercurial-devel?ref=TOPIC&dir=contrib/nix' -- version`
pacien <pacien.trangirard@pacien.net> [Thu, 20 Apr 2023 16:55:19 +0200] rev 50445
hgignore: ignore nix result symlink
pacien <pacien.trangirard@pacien.net> [Sun, 16 Apr 2023 23:48:24 +0200] rev 50444
tests: add test ignore list for nix
Some tests cannot run properly in the nix sandbox.
This adds a list of tests to ignore when running in that context.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Mar 2023 14:29:35 +0000] rev 50443
ui: keep the progress bar around when writing if stdout is not a tty
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Wed, 26 Apr 2023 15:30:35 -0400] rev 50442
rhg: correctly relativize copy source path
Arun Kulshreshtha <akulshreshtha@janestreet.com> [Wed, 26 Apr 2023 15:31:02 -0400] rev 50441
rhg: don't print copy source when --no-status is passed