tests/test-archive-symlinks
author Nicolas Dumazet <nicdumz.commits@gmail.com>
Sat, 23 May 2009 18:44:01 +0900
changeset 8600 d46cdfcecaf1
parent 5683 396c7010b0cd
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" symlink || exit 80

origdir=`pwd`

hg init repo
cd repo
ln -s nothing dangling
# avoid tar warnings about old timestamp
hg ci -d '2000-01-01 00:00:00 +0000' -qAm 'add symlink'

hg archive -t files ../archive
hg archive -t tar -p tar ../archive.tar
hg archive -t zip -p zip ../archive.zip

echo '% files'
cd "$origdir"
cd archive
$TESTDIR/readlink.py dangling

echo '% tar'
cd "$origdir"
tar xf archive.tar
cd tar
$TESTDIR/readlink.py dangling

echo '% zip'
cd "$origdir"
unzip archive.zip > /dev/null
cd zip
$TESTDIR/readlink.py dangling