tests/test-http-clone-r
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Fri, 16 Mar 2007 00:22:58 -0300
changeset 4230 c93562fb12cc
parent 3853 c0b449154a90
child 5384 e3a0c092b4e2
permissions -rwxr-xr-x
Fix handling of paths when run outside the repo. The main problem was that dirstate.getcwd() returned just "", which was interpreted as "we're at the repo root". It now returns an absolute path. The util.pathto function was also changed to deal with the "cwd is an absolute path" case.

#!/bin/sh

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
echo "# Starting server"
hg serve -p 20061 -d --pid-file=../hg1.pid
cd ..
cat hg1.pid >> $DAEMON_PIDS

echo "# clone remote via stream"
for i in 0 1 2 3 4 5 6 7 8; do
   hg clone -r "$i" http://localhost:20061/ 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 -r 4 http://localhost:20061/ 2>&1
hg verify
hg pull http://localhost:20061/ 2>&1
cd ..
cd test-2
hg pull -r 5 http://localhost:20061/ 2>&1
hg verify
hg pull http://localhost:20061/ 2>&1
hg verify
cd ..