inotify: do not rely on stat(.hg/dirstate) to invalidate our dirstate
stat() is not reliable when several events happen quickly. Which means
that if two hg actions occur in the same second, stat() result will not
reflect the second change. And only _one_ invalidate() call was done.
Also ignore the events that occur when wlock is held, since wlock release
will trigger a full rescan anyway.
Fixes 17 run-tests.py --inotify tests.
created new head
changeset: 1:7731dad1c2b9
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: cp foo bar; change both
searching for copies back to rev 1
unmatched files in other:
bar
all copies found (* = to merge, ! = divergent):
bar -> foo *
checking for directory renames
resolving manifests
overwrite None partial False
ancestor 310fd17130da local 2092631ce82b+ remote 7731dad1c2b9
foo: versions differ -> m
foo: remote copied to bar -> m
preserving foo for resolve of bar
preserving foo for resolve of foo
picked tool 'internal:merge' for bar (binary False symlink False)
merging foo and bar to bar
my bar@2092631ce82b+ other bar@7731dad1c2b9 ancestor foo@310fd17130da
premerge successful
picked tool 'internal:merge' for foo (binary False symlink False)
merging foo
my foo@2092631ce82b+ other foo@7731dad1c2b9 ancestor foo@310fd17130da
premerge successful
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
-- foo --
line 0
line 1
line 2-1
-- bar --
line 0
line 1
line 2-2