Mercurial > hg
view tests/test-static-http @ 6369:53912d30ac40
Avoid calling heads() twice on every hg commit.
In an extreme case (merging two revisions with very low revision numbers)
this could be slower than the previous code, but it should be much faster
in the usual cases (parents are near the tip). It also avoids some races
in some uninteresting cases (e.g. two concurrent hg commits).
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sun, 23 Mar 2008 21:03:24 -0300 |
parents | 6605a03cbf87 |
children | 7739b61897df |
line wrap: on
line source
#!/bin/sh cp "$TESTDIR"/printenv.py . http_proxy= hg clone static-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 .. http_proxy= hg clone static-http://localhost:$HGPORT/remote local | sed -e 's,:[0-9][0-9]*/,/,' 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 http_proxy= hg pull | sed -e 's,:[0-9][0-9]*/,/,' echo '% test with "/" URI (issue 747)' cd .. hg init echo a > a hg add a hg ci -ma http_proxy= hg clone static-http://localhost:$HGPORT/ local2 | sed -e 's,:[0-9][0-9]*/,/,' cd local2 hg verify cat a hg paths | sed -e 's,:[0-9][0-9]*/,/,' echo '% test with empty repo (issue965)' cd .. hg init remotempty http_proxy= hg clone static-http://localhost:$HGPORT/remotempty local3 | sed -e 's,:[0-9][0-9]*/,/,' cd local3 hg verify hg paths | sed -e 's,:[0-9][0-9]*/,/,' echo '% test with non-repo' cd .. mkdir notarepo http_proxy= hg clone static-http://localhost:$HGPORT/notarepo local3 2>&1 | sed -e 's,:[0-9][0-9]*/,/,' kill $!