Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Apr 2022 17:15:35 +0200] rev 49156
rust-dirstate-v2: fix the unused bytes counter when rewriting the dirstate
As per the previous patch, the counter was incorrectly carried over from the
old docket when it should be reset for a complete rewrite.
Differential Revision: https://phab.mercurial-scm.org/D12594
Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Apr 2022 17:11:51 +0200] rev 49155
rust-dirstate-v2: show `unused_bytes` counter is not reset on total rewrite
This was picked up by @aalekseyev when doing unrelated debugging.
The Rust implementation was never resetting this counter, so a brand new file
would carry over the old counter.
As I write this, my counter is a supposed 7389089 unused bytes for a total of
170978 bytes in the data file. Feel free to post your own high score.
Differential Revision: https://phab.mercurial-scm.org/D12593
Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Apr 2022 16:24:55 +0200] rev 49154
test-dirstate: use new `--docket` flag to get the data uuid
This is more robust.
Differential Revision: https://phab.mercurial-scm.org/D12592
Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Apr 2022 15:22:08 +0200] rev 49153
debugcommands: remove `debugdirstateignorepatternhash`
This is replaced by the more complete `--docket` option to `debugstate`.
Differential Revision: https://phab.mercurial-scm.org/D12591
Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Apr 2022 15:19:19 +0200] rev 49152
dirstate-v2: add flag to `debugstate` to print docket information
This is useful information that we don't easily have access to currently,
unless you speak fluent xxd.
This replaces `debugdirstateignorepatternshash`, which I'll remove in the next
changeset.
Differential Revision: https://phab.mercurial-scm.org/D12590
Matt Harbison <matt_harbison@yahoo.com> [Mon, 02 May 2022 22:04:59 -0400] rev 49151
doc: use an absolute path in sys.path to work around a python DLL loading bug
This bug[1] was causing the zstd entry under "Available Compression Engines" to
be omitted from the documentation for some versions of python3. I could
upgrade, but past upgrades have broken venvs and clobbered installed packages.
It's a trivial workaround, so there's no sense in leaving this subtle issue. It
was flushed out by changing the module policy here from 'allow' to 'c', and
seeing this error:
ImportError: DLL load failed while importing parsers: The parameter is incorrect.
[1] https://github.com/python/cpython/issues/87271
Differential Revision: https://phab.mercurial-scm.org/D12599
Raphaël Gomès <rgomes@octobus.net> [Mon, 25 Apr 2022 16:45:03 +0200] rev 49150
rhg: fix dirstate-v2 data file removal system
In D12581 I introduced logic to remove the previous dirstate-v2 data file
after a new one is created (and its corresponding docket), but the logic was
flawed. I fixed it and made it simpler to understand by gather all logic in
a single expression.
Differential Revision: https://phab.mercurial-scm.org/D12586
Raphaël Gomès <rgomes@octobus.net> [Tue, 19 Apr 2022 12:27:40 +0200] rev 49149
rhg: use `Command::exec` instead of `Command::status`
`rhg` is supposed to be a transparent executable, using a subprocess defeats
that purpose. See inline comments for more details.
This also introduces the `which` crate to check if the fallback executable
actually exists to help debugging (plain `execve` doesn't give much
information).
The error code 253 is used to signify that the fallback is not found, but may
mean in the future that it is otherwise invalid if we start being more
specific.
Differential Revision: https://phab.mercurial-scm.org/D12578
Martin von Zweigbergk <martinvonz@google.com> [Wed, 27 Apr 2022 15:47:57 +0200] rev 49148
commit: don't use hard-coded `.hg/last-message.txt` path in error message
Whoever wrote D8463 just used a hard-coded path to
`.hg/last-message.text` instead of using the relative path that was
already available in the `msgfn` variable (and used just a few lines
up in related message). Let's fix that.
Differential Revision: https://phab.mercurial-scm.org/D12585
Raphaël Gomès <rgomes@octobus.net> [Mon, 25 Apr 2022 11:09:33 +0200] rev 49147
branching: merge stable into default
This also added the small fix need in Rust tests for the new
`DirstateMap::pack_v2` API change in stable.
Raphaël Gomès <rgomes@octobus.net> [Thu, 21 Apr 2022 15:10:57 +0200] rev 49146
rust-dirstate-v2: clean up previous data file after the docket is written
This was overlooked before and caused many data files to keep living forever.
We could potentially consider adding a random cleanup of them in case they
slipped through one day.
Differential Revision: https://phab.mercurial-scm.org/D12581
Raphaël Gomès <rgomes@octobus.net> [Thu, 21 Apr 2022 14:47:13 +0200] rev 49145
rust-dirstate-v2: save proper data size if no new data on append
This is currently only triggered with the tests ran with `--rhg` without
`--rust`, by "luck", there probably always was something to write, like an
mtime when also using Rust extensions alongside `rhg`.
Differential Revision: https://phab.mercurial-scm.org/D12580
Kyle Lippincott <spectral@google.com> [Tue, 19 Apr 2022 12:17:23 -0700] rev 49144
amend: move "return None for removed files" into block handling filestoamend
This is just a small logic cleanup from D12573, no change in behavior.
Differential Revision: https://phab.mercurial-scm.org/D12576
Raphaël Gomès <rgomes@octobus.net> [Tue, 12 Apr 2022 17:35:25 +0200] rev 49143
rust-dirstatemap: remove unused helper from the old API
Differential Revision: https://phab.mercurial-scm.org/D12541
Raphaël Gomès <rgomes@octobus.net> [Tue, 12 Apr 2022 17:35:02 +0200] rev 49142
rust-status: stop using `state()` in the dispatch logic
Let's use the new API.
Differential Revision: https://phab.mercurial-scm.org/D12540
Raphaël Gomès <rgomes@octobus.net> [Tue, 12 Apr 2022 17:34:18 +0200] rev 49141
rust-status: stop using `state()` in `handle_normal_file`
Let's use the new API
Differential Revision: https://phab.mercurial-scm.org/D12539