|
|
#!/bin/sh
|
|
|
|
|
|
cp "$TESTDIR"/printenv.py .
|
|
|
|
|
|
hg clone http://localhost:$HGPORT/ copy
|
|
|
echo $?
|
|
|
test -d copy || echo copy: No such file or directory
|
|
|
|
|
|
# This server doesn't do range requests so it's basically only good for
|
|
|
# one pull
|
|
|
cat > dumb.py <<EOF
|
|
|
import BaseHTTPServer, SimpleHTTPServer, os, signal
|
|
|
|
|
|
def run(server_class=BaseHTTPServer.HTTPServer,
|
|
|
handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
|
|
|
server_address = ('localhost', int(os.environ['HGPORT']))
|
|
|
httpd = server_class(server_address, handler_class)
|
|
|
httpd.serve_forever()
|
|
|
|
|
|
signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
|
|
|
run()
|
|
|
EOF
|
|
|
|
|
|
python dumb.py 2>/dev/null &
|
|
|
echo $! >> $DAEMON_PIDS
|
|
|
|
|
|
mkdir remote
|
|
|
cd remote
|
|
|
hg init
|
|
|
echo foo > bar
|
|
|
hg add bar
|
|
|
hg commit -m"test" -d "1000000 0"
|
|
|
hg tip
|
|
|
|
|
|
cd ..
|
|
|
|
|
|
hg clone static-http://localhost:$HGPORT/remote local | sed -e "s,:$HGPORT/,:\$HGPORT/,"
|
|
|
|
|
|
cd local
|
|
|
hg verify
|
|
|
cat bar
|
|
|
|
|
|
cd ../remote
|
|
|
echo baz > quux
|
|
|
hg commit -A -mtest2 -d '100000000 0'
|
|
|
|
|
|
cd ../local
|
|
|
echo '[hooks]' >> .hg/hgrc
|
|
|
echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
|
|
|
hg pull | sed -e "s,:$HGPORT/,:\$HGPORT/,"
|
|
|
|
|
|
echo '% trying to push'
|
|
|
hg update
|
|
|
echo more foo >> bar
|
|
|
hg commit -m"test" -d "100000000 0"
|
|
|
hg push | sed -e "s,:$HGPORT/,:\$HGPORT/,"
|
|
|
|
|
|
echo '% test with "/" URI (issue 747)'
|
|
|
cd ..
|
|
|
hg init
|
|
|
echo a > a
|
|
|
hg add a
|
|
|
hg ci -ma
|
|
|
|
|
|
hg clone static-http://localhost:$HGPORT/ local2 | sed -e "s,:$HGPORT/,:\$HGPORT/,"
|
|
|
|
|
|
cd local2
|
|
|
hg verify
|
|
|
cat a
|
|
|
hg paths | sed -e "s,:$HGPORT/,:\$HGPORT/,"
|
|
|
|
|
|
echo '% test with empty repo (issue965)'
|
|
|
cd ..
|
|
|
hg init remotempty
|
|
|
|
|
|
hg clone static-http://localhost:$HGPORT/remotempty local3 | sed -e "s,:$HGPORT/,:\$HGPORT/,"
|
|
|
|
|
|
cd local3
|
|
|
hg verify
|
|
|
hg paths | sed -e "s,:$HGPORT/,:\$HGPORT/,"
|
|
|
|
|
|
echo '% test with non-repo'
|
|
|
cd ..
|
|
|
mkdir notarepo
|
|
|
hg clone static-http://localhost:$HGPORT/notarepo local3 2>&1 | sed -e "s,:$HGPORT/,:\$HGPORT/,"
|
|
|
|
|
|
kill $!
|
|
|
|