view tests/test-symlink-basic @ 5534:61c230f81068

mq: avoid qnew committing everything on invalid paths (issue 803) If paths are supplied but resolve to nothing, localrepo.commit() is called with an empty set and commits the whole dirstate. Avoid this by passing the match function to commit.
author Patrick Mezard <pmezard@gmail.com>
date Tue, 20 Nov 2007 14:31:58 +0100
parents 25d753efd48e
children 396c7010b0cd
line wrap: on
line source

#!/bin/sh

"$TESTDIR/hghave" symlink || exit 80

cleanpath()
{
    sed -e "s:/.*\(/test-symlink-basic/.*\):...\1:"
}

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

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

hg init a
cd a
ln -s nothing dangling
hg commit -m 'commit symlink without adding' -d '0 0' dangling 2>&1 | cleanpath
hg add dangling
hg commit -m 'add symlink' -d '0 0'

hg tip -v
hg manifest --debug
echo '% rev 0:'
python ../readlink.py dangling

rm dangling
ln -s void dangling
hg commit -m 'change symlink'
echo '% rev 1:'
python ../readlink.py dangling

echo '% modifying link'
rm dangling
ln -s empty dangling
python ../readlink.py dangling

echo '% reverting to rev 0:'
hg revert -r 0 -a
python ../readlink.py dangling

echo '% backups:'
python ../readlink.py *.orig

rm *.orig
hg up -C
echo '% copies'
hg cp -v dangling dangling2
hg st -Cmard
python ../readlink.py dangling dangling2