view tests/test-ssh-clone-r @ 4135:6cb6cfe43c5d

Avoid some false positives for addremove -s The original code uses the similary score 1 - len(diff(after, before)) / len(after) The diff can at most be the size of the 'before' file, so any small 'before' file would be considered very similar. Removing an empty file would cause all files added in the same revision to be considered copies of the removed file. This changes the metric to bytes_overlap(before, after) / len(before + after) i.e. the actual percentage of bytes shared between the two files.
author Erling Ellingsen <erlingalf@gmail.com>
date Sun, 18 Feb 2007 20:39:25 +0100
parents c0b449154a90
children 6b1e1b9da853
line wrap: on
line source

#!/bin/sh

# This test tries to exercise the ssh functionality with a dummy script

cat <<'EOF' > dummyssh
#!/bin/sh
# this attempts to deal with relative pathnames
cd `dirname $0`

# check for proper args
if [ $1 != "user@dummy" ] ; then
	exit -1
fi

# check that we're in the right directory
if [ ! -x dummyssh ] ; then
	exit -1
fi

SSH_CLIENT='127.0.0.1 1 2'
export SSH_CLIENT
echo Got arguments 1:$1 2:$2 3:$3 4:$4 5:$5 >> dummylog
$2
EOF
chmod +x dummyssh

hg init remote
cd remote
echo "# creating 'remote'"
cat >>afile <<EOF
0
EOF
hg add afile
hg commit -m "0.0"
cat >>afile <<EOF
1
EOF
hg commit -m "0.1"
cat >>afile <<EOF
2
EOF
hg commit -m "0.2"
cat >>afile <<EOF
3
EOF
hg commit -m "0.3"
hg update -C 0
cat >>afile <<EOF
1
EOF
hg commit -m "1.1"
cat >>afile <<EOF
2
EOF
hg commit -m "1.2"
cat >fred <<EOF
a line
EOF
cat >>afile <<EOF
3
EOF
hg add fred
hg commit -m "1.3"
hg mv afile adifferentfile
hg commit -m "1.3m"
hg update -C 3
hg mv afile anotherfile
hg commit -m "0.3m"
hg debugindex .hg/store/data/afile.i
hg debugindex .hg/store/data/adifferentfile.i
hg debugindex .hg/store/data/anotherfile.i
hg debugindex .hg/store/data/fred.i
hg debugindex .hg/store/00manifest.i
hg verify
cd ..

echo "# clone remote via stream"
for i in 0 1 2 3 4 5 6 7 8; do
   hg clone -e ./dummyssh --uncompressed -r "$i" ssh://user@dummy/remote test-"$i" 2>&1
   if cd test-"$i"; then
      hg verify
      cd ..
   fi
done
cd test-8
hg pull ../test-7
hg verify
cd ..
cd test-1
hg pull -e ../dummyssh -r 4 ssh://user@dummy/remote 2>&1
hg verify
hg pull -e ../dummyssh ssh://user@dummy/remote 2>&1
cd ..
cd test-2
hg pull -e ../dummyssh -r 5 ssh://user@dummy/remote 2>&1
hg verify
hg pull -e ../dummyssh ssh://user@dummy/remote 2>&1
hg verify
cd ..