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).
#!/bin/sh
hgserve()
{
hg serve -a localhost -p $HGPORT1 -d --pid-file=hg.pid -v $@ \
| sed -e 's/:[0-9][0-9]*//g' -e 's/http:\/\/[^/]*\//http:\/\/localhost\//'
cat hg.pid >> "$DAEMON_PIDS"
sleep 1
kill `cat hg.pid`
sleep 1
}
hg init test
cd test
echo '[web]' > .hg/hgrc
echo 'accesslog = access.log' >> .hg/hgrc
echo % Without -v
hg serve -a localhost -p $HGPORT -d --pid-file=hg.pid
cat hg.pid >> "$DAEMON_PIDS"
if [ -f access.log ]; then
echo 'access log created - .hg/hgrc respected'
fi
echo % With -v
hgserve
echo % With --prefix foo
hgserve --prefix foo
echo % With --prefix /foo
hgserve --prefix /foo
echo % With --prefix foo/
hgserve --prefix foo/
echo % With --prefix /foo/
hgserve --prefix /foo/