##// END OF EJS Templates
addremove: correctly handle intermediate symlinks...
addremove: correctly handle intermediate symlinks This fixes problems mentioned in issue660 comments (unrelated to original issue) where directory was renamed, and symlink was added instead. In such situation addremove wasn't able to correctly detect that old files no longer here, but tried to add symlink (and failed due collision with old files).

File last commit:

r6258:c24f4b3f default
r6651:7f0dd352 default
Show More
test-symlink-basic
50 lines | 870 B | text/plain | TextLexer
#!/bin/sh
"$TESTDIR/hghave" symlink || exit 80
hg init a
cd a
ln -s nothing dangling
hg commit -m 'commit symlink without adding' dangling
hg add dangling
hg commit -m 'add symlink'
hg tip -v
hg manifest --debug
echo '% rev 0:'
$TESTDIR/readlink.py dangling
rm dangling
ln -s void dangling
hg commit -m 'change symlink'
echo '% rev 1:'
$TESTDIR/readlink.py dangling
echo '% modifying link'
rm dangling
ln -s empty dangling
$TESTDIR/readlink.py dangling
echo '% reverting to rev 0:'
hg revert -r 0 -a
$TESTDIR/readlink.py dangling
echo '% backups:'
$TESTDIR/readlink.py *.orig
rm *.orig
hg up -C
echo '% copies'
hg cp -v dangling dangling2
hg st -Cmard
$TESTDIR/readlink.py dangling dangling2
echo '% issue995'
hg up -C
mkdir dir
ln -s dir dirlink
hg ci -qAm 'add dirlink'
mkdir newdir
mv dir newdir/dir
mv dirlink newdir/dirlink
hg mv -A dirlink newdir/dirlink