dirstate-v2: no longer register the data-file during transaction
If the data file change during the transaction, we cannot truncate it.
The content of the file itself is fine as it will get backed up at the same time
as the docket.
Leaving the trailing data at the end of failed transaction is fine. The
dirstate-v2 format supports it. The dead data will simply we written over if
necessary.
fsmonitor: use new dirstate APIs (
issue6728)
On top of fixing fsmonitor, it moves one more "old API" use to the new one.
This needs very verbose code to save a few function calls that are very
expensive in Python.
dirstate-v2: backup the data file during the transaction (
issue6730)
If we backup of the docket, without doing a backup of the data file, we
highly risk restoring a docket pointing to a missing file in the future.
So we now backup the data-file alongside the docket.
dirstate-v2: display a possible issue with transaction
If we backup the dirstate without the data file, we can end up in an
inconsistent state of the transaction is rolled back.
test-dirstate: do not get out of the test directory
It looks like we were doing one `cd ..` too many.
rust-matchers: fix behavior of `IncludeMatcher` with multiple includes
This change adds a test for this fix as well as an additional test case that
was useful in debugging this behavior.
compare-disco: support for `file` nodes specification
This leverage the `nodefromfile` feature in core. This make it possible for
callers to no longer pay the subset computation cost (and to make sure the
subset is the right one, even when the base repository is different)