This is an archive of the discontinued Mercurial Phabricator instance.

dirstate-v2: Add storage space for nanoseconds precision in file mtimes
ClosedPublic

Authored by SimonSapin on Oct 13 2021, 11:39 AM.

Details

Summary

For now the sub-second component is always set to zero for tracked files and
symlinks. (The mtime of directories for the readdir-skipping optimization
is a different code path and already uses the full precision available.)

This extra storage uses the space previously freed by replacing the 32-bit
mode field by two bits in the existing flags field, so the overall size
of nodes is unchanged. (This space had been left as padding for this purpose.)

Also move things around in the node layout and documentation to have less
duplication. Now that they have the same representation, directory mtime and
file mtime are kept in the same field. (Only either one can exist for a given
node.)

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.