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.
adding .hgignore
adding a
adding eol.diff to series file
% should fail in strict mode
applying eol.diff
patching file a
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file a.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh eol.diff
popping eol.diff
patch queue now empty
% invalid eol
applying eol.diff
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh eol.diff
popping eol.diff
patch queue now empty
% force LF
applying eol.diff
now at: eol.diff
test message<LF>
<LF>
diff --git a/a b/a<LF>
--- a/a<LF>
+++ b/a<LF>
@@ -1,5 +1,5 @@<LF>
-a<LF>
-b<LF>
-c<LF>
-d<LF>
-e<LF>
\ No newline at end of file<LF>
+a<CR><LF>
+y<CR><LF>
+c<CR><LF>
+d<CR><LF>
+z<LF>
\ No newline at end of file<LF>
a<CR><LF>
y<CR><LF>
c<CR><LF>
d<CR><LF>
z
popping eol.diff
patch queue now empty
% push again forcing LF and compare revisions
applying eol.diff
now at: eol.diff
a<CR><LF>
y<CR><LF>
c<CR><LF>
d<CR><LF>
z
popping eol.diff
patch queue now empty
% push again without LF and compare revisions
applying eol.diff
now at: eol.diff
a<CR><LF>
y<CR><LF>
c<CR><LF>
d<CR><LF>
z
popping eol.diff
patch queue now empty