posix: don't compare atime when determining if a file has changed
A file's atime might change even if the file itself doesn't change. This might
cause us to invalidate caches more often than necessary.
Before this change, hg add often resulted in the dirstate being parsed twice
on systems that track atime. After this change, it is only parsed once. For a
repository with over 180,000 files, this speeds up hg add from 1.2 seconds to
1.0.
$ hg init
$ echo a > a
$ hg ci -qAm 'add a'
$ echo b > b
$ hg ci -qAm 'add b'
$ hg up -qC 0
$ hg rm a
$ hg ci -m 'rm a'
created new head
$ hg up -qC 1
$ rm a
Local deleted a file, remote removed
Should fail, since there are deleted files:
$ hg merge
abort: outstanding uncommitted changes
(use 'hg status' to list changes)
[255]
Should succeed with --force:
$ hg -v merge --force
resolving manifests
removing a
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Should show 'a' as removed:
$ hg status
R a
$ hg ci -m merge
Should not show 'a':
$ hg manifest
b