sapling/tests/test-revert-status.t
Jun Wu 6e33b70c43 tests: fix flaky test-revert-status.t
Summary:
If the first "hg update" command runs slower for whatever reason, the
dirstate won't have "unset" mtimes.

Reviewed By: mitrandir77

Differential Revision: D8166760

fbshipit-source-id: 6d9dafc13ccf54f449e204da02dce669221b38c4
2018-05-25 13:03:57 -07:00

48 lines
1.2 KiB
Perl

Quote from test-revert.t but this version is stronger - mtime was changed
manually.
> Test that files reverted to other than the parent are treated as
> "modified", even if none of mode, size and timestamp of it isn't
> changed on the filesystem (see also issue4583).
$ newrepo
$ drawdag <<EOS
> B # B/A=B
> | # A/A=A
> A
> EOS
$ hg up -q $B
Initially, dirstate does not have mtime set for files if the command was
executed quickly (mtime == fsnow at the end of the command).
# $ hg debugdirstate
# n 644 1 unset A
# n 644 1 unset B
Calling hg status would update mtimes in dirstate (unless mtime == now)
$ touch -t 200001010000 A B
$ hg status
$ hg debugdirstate
n 644 1 2000-01-01 00:00:00 A
n 644 1 2000-01-01 00:00:00 B
Revert "A" so its content will change. The size does not change and we set
mtime to make it unchanged.
$ hg revert -r $A A
$ touch -t 200001010000 A
dirstate mtime for "A" is changed to "unset"
$ hg debugdirstate
n 0 -1 unset A
n 644 1 2000-01-01 00:00:00 B
status can detect "A" is modified
$ hg status
M A