tests/test-archive-symlinks
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Sat, 18 Aug 2007 21:36:10 -0300
changeset 5200 c7e8fe11f34a
parent 5085 92d7ce0da063
permissions -rwxr-xr-x
path_auditor: cache names of audited directories We use a separate cache to avoid problems with audit = path_auditor(repo.root) audit("subrepo") audit("subrepo/file") whitelisting "subrepo" (which is fine) and then using the same whitelist with "subrepo/file" (which is not fine). Since we create a separate path_auditor for every path on the command line, a "hg add dir/a dir/b dir/c" will still lstat dir 3 times just to audit the paths.

#!/bin/sh

"$TESTDIR/hghave" symlink || exit 80

origdir=`pwd`

cat >> readlink.py <<EOF
import os
import sys

for f in sys.argv[1:]:
    print f, '->', os.readlink(f)
EOF

hg init repo
cd repo
ln -s nothing dangling
hg ci -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
python ../readlink.py dangling

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

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