Simon Sapin <simon.sapin@octobus.net> [Mon, 11 Oct 2021 22:19:42 +0200] rev 48191
dirstate-v2: Change the representation of negative directory mtime
Change it from how I previously thought C’s `timespec` works
to how it actually works.
The previous behavior was also buggy for timestamps strictly before the
epoch but less than one second away from it, because two’s complement
does not distinguish negative zero from positive zero.
Differential Revision: https://phab.mercurial-scm.org/D11629
Simon Sapin <simon.sapin@octobus.net> [Tue, 12 Oct 2021 15:29:05 +0200] rev 48190
dirstate-v2: Only convert from SystemTime to Timestamp and not back
Converting from Timestamp back to SystemTime was only used for equality
comparison, but this can also be done on Timestamp values.
Differential Revision: https://phab.mercurial-scm.org/D11631
Simon Sapin <simon.sapin@octobus.net> [Fri, 08 Oct 2021 12:57:24 +0200] rev 48189
dirstate-v2: Swap the order of size and mtime on disk
This makes the dirstate-v2 file format match dirstate-v1 for the order of
`mode`, `size`, and `mtime`. This order does not matter as long as these
components are handled through named fields/attributes in code, but in a few
places we still have tuples so having the same order everywhere might help
avoid a bug that might not be obvious since those components have the same type.
Differential Revision: https://phab.mercurial-scm.org/D11620
Simon Sapin <simon.sapin@octobus.net> [Mon, 11 Oct 2021 18:23:17 +0200] rev 48188
dirstate-v2: Document flags/mode/size/mtime fields of tree nodes
This file format modification was previously left incomplete because of
planned upcoming changes. Not all of these changes have been made yet,
but documenting what exists today will help talking more widely about it.
Differential Revision: https://phab.mercurial-scm.org/D11625