view tests/test-symlink-basic @ 6297:fed1a9c22076

dirstate.remove: during merges, remember the previous file state We encode the previous state as a negative file size (AFAICS, previous versions of hg always have size == 0 when state == 'r'). We save the state of 'm'erged and dirty files, because they're the two states that indicate that a file has to be committed on a merge to correctly record per-file history.
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Tue, 18 Mar 2008 04:07:39 -0300
parents c24f4b3f156b
children
line wrap: on
line source

#!/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