tests/test-inotify
author Nicolas Dumazet <nicdumz.commits@gmail.com>
Sat, 23 May 2009 18:44:01 +0900
changeset 8600 d46cdfcecaf1
parent 7393 92c952c4470c
child 9116 f90bbf1ea09f
permissions -rwxr-xr-x
inotify: proper fix for issue1542 (partially reverting 67e59a9886d5) issue1542 description: Unknown files (?) placed in a directory are still marked as present and unknown when the containing directory is moved out of the repository scope. Why 67e59a9886d5 was bad: * When the problem we're addressing only deals with unknown files, the fix to updatestatus applies for all statuses * The only reason to move the call schedule_work(wpath, 'd') seems to be that it allowed an updatestatus call on the deleted directory, in deleted(). But deleted() should not be called on directories in the first place. * After fixing an independant issue (1371), test-inotify-issue1542 was failing Fix: When processing a deletion of a directory, walk the tree of the unknown files and remove the entries from repowatcher. This step does not need to be added in the generic scan() routine: it is only necessary on a directory deletion.

#!/bin/sh

"$TESTDIR/hghave" inotify || exit 80

hg init

touch a b c d e
mkdir dir
mkdir dir/bar
touch dir/x dir/y dir/bar/foo

hg ci -Am m

echo "[extensions]" >> $HGRCPATH
echo "inotify=" >> $HGRCPATH

echo % inserve
hg inserve -d --pid-file=hg.pid
cat hg.pid >> "$DAEMON_PIDS"

# let the daemon finish its stuff
sleep 1
# issue907
hg status
echo % clean
hg status -c
echo % all
hg status -A

echo '% path patterns'
echo x > dir/x
hg status .
hg status dir
cd dir
hg status .
cd ..

kill `cat hg.pid`