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.