Mercurial > hg
comparison mercurial/helptext/internals/dirstate-v2.txt @ 48191:a5a673ec8f6f
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
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Mon, 11 Oct 2021 22:19:42 +0200 |
parents | 6e01bcd111d2 |
children | 320de901896a |
comparison
equal
deleted
inserted
replaced
48190:0cc0c0972164 | 48191:a5a673ec8f6f |
---|---|
441 * Offset 31: | 441 * Offset 31: |
442 12 bytes set to zero | 442 12 bytes set to zero |
443 | 443 |
444 If an untracked node `HAS_MTIME` *set*, | 444 If an untracked node `HAS_MTIME` *set*, |
445 what follows is the modification time of a directory | 445 what follows is the modification time of a directory |
446 represented with separated second and sub-second components | 446 represented similarly to the C `timespec` struct: |
447 since the Unix epoch: | |
448 | 447 |
449 * Offset 31: | 448 * Offset 31: |
450 The number of seconds as a signed (two’s complement) 64-bit integer. | 449 The number of seconds elapsed since the Unix epoch, |
450 as a signed (two’s complement) 64-bit integer. | |
451 | 451 |
452 * Offset 39: | 452 * Offset 39: |
453 The number of nanoseconds as 32-bit integer. | 453 The number of nanoseconds elapsed since |
454 the instant specified by the previous field alone, | |
455 as 32-bit integer. | |
454 Always greater than or equal to zero, and strictly less than a billion. | 456 Always greater than or equal to zero, and strictly less than a billion. |
455 Increasing this component makes the modification time | 457 Increasing this component makes the modification time |
456 go forward or backward in time dependening | 458 go forward in time regardless of the sign of the seconds component. |
457 on the sign of the integral seconds components. | |
458 (Note: this is buggy because there is no negative zero integer, | |
459 but will be changed soon.) | |
460 | 459 |
461 The presence of a directory modification time means that at some point, | 460 The presence of a directory modification time means that at some point, |
462 this path in the working directory was observed: | 461 this path in the working directory was observed: |
463 | 462 |
464 - To be a directory | 463 - To be a directory |