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

r5914:8e7796a9 default
r6651:7f0dd352 default
Show More
test-strip-cross
68 lines | 1.1 KiB | text/plain | TextLexer
#!/bin/sh
# test stripping of filelogs where the linkrev doesn't always increase
echo '[extensions]' >> $HGRCPATH
echo 'hgext.mq =' >> $HGRCPATH
hg init orig
cd orig
hidefilename()
{
sed -e 's/saving bundle to .*strip-backup/saving bundle to strip-backup/'
}
commit()
{
hg up -qC null
count=1
for i in "$@"; do
for f in $i; do
echo $count > $f
done
count=`expr $count + 1`
done
hg commit -qAm "$*"
}
# 2 1 0 2 0 1 2
commit '201 210'
commit '102 120' '210'
commit '021'
commit '201' '021 120'
commit '012 021' '102 201' '120 210'
commit 'manifest-file'
commit '102 120' '012 210' '021 201'
commit '201 210' '021 120' '012 102'
HGUSER=another-user; export HGUSER
commit 'manifest-file'
commit '012' 'manifest-file'
cd ..
hg clone -q -U -r -1 -r -2 -r -3 -r -4 -r -6 orig crossed
for i in crossed/.hg/store/00manifest.i crossed/.hg/store/data/*.i; do
echo $i
hg debugindex $i
echo
done
for i in 0 1 2 3 4; do
hg clone -q -U --pull crossed $i
echo "% Trying to strip revision $i"
hg --cwd $i strip $i 2>&1 | hidefilename
echo "% Verifying"
hg --cwd $i verify
echo
done