HomePhabricator

dirstate-v2: Truncate directory mtimes to 31 bits of seconds

Authored by SimonSapin.

Description

dirstate-v2: Truncate directory mtimes to 31 bits of seconds

… instead of 64 bits, while keeping the sub-second presision.
This brings the size of one timestamp from 12 bytes to 8 bytes.

31 bits is chosen instead of 32 because that’s already what happens for the
mtime of files and symlinks, because dirstate-v1 uses negative i32 values as
markers.

Later we’ll add sub-second precision for file/symlink mtimes, making their
dirstate-v2 representation the same as for directories.

Differential Revision: https://phab.mercurial-scm.org/D11633