tests/test-static-http
author Vadim Gelfer <vadim.gelfer@gmail.com>
Thu, 15 Jun 2006 16:37:23 -0700
changeset 2439 e8c4f3d3df8c
parent 2431 d90a9d7c7d4d
child 2571 d22d730c96ed
permissions -rwxr-xr-x
extend network protocol to stop clients from locking servers now all repositories have capabilities slot, tuple with list of names. if 'unbundle' capability present, repo supports push where client does not need to lock server. repository classes that have unbundle capability also have unbundle method. implemented for ssh now, will be base for push over http. unbundle protocol acts this way. server tells client what heads it has during normal negotiate step. client starts unbundle by repeat server's heads back to it. if server has new heads, abort immediately. otherwise, transfer changes to server. once data transferred, server locks and checks heads again. if heads same, changes can be added. else someone else added heads, and server aborts. if client wants to force server to add heads, sends special heads list of 'force'.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1111
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
     1
#!/bin/sh
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
     2
2431
d90a9d7c7d4d replace old-http:// syntax by static-http:// and deprecate the redundant hg://
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1962
diff changeset
     3
http_proxy= hg clone static-http://localhost:20059/ copy
1111
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
     4
echo $?
1962
2a676ad52c22 tests: more portability fix for the old systems
TK Soh <teekaysoh@yahoo.com>
parents: 1935
diff changeset
     5
ls copy 2>/dev/null || echo copy: No such file or directory
1111
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
     6
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
     7
# This server doesn't do range requests so it's basically only good for
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
     8
# one pull
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
     9
cat > dumb.py <<EOF
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    10
import BaseHTTPServer, SimpleHTTPServer, signal
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    11
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    12
def run(server_class=BaseHTTPServer.HTTPServer,
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    13
        handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    14
    server_address = ('localhost', 20059)
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    15
    httpd = server_class(server_address, handler_class)
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    16
    httpd.serve_forever()
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    17
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    18
signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    19
run()
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    20
EOF
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    21
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    22
python dumb.py 2>/dev/null &
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    23
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    24
mkdir remote
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    25
cd remote
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    26
hg init
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    27
echo foo > bar
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    28
hg add bar
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1923
diff changeset
    29
hg commit -m"test" -d "1000000 0"
1111
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    30
hg tip
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    31
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    32
cd ..
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    33
2431
d90a9d7c7d4d replace old-http:// syntax by static-http:// and deprecate the redundant hg://
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1962
diff changeset
    34
http_proxy= hg clone static-http://localhost:20059/remote local
1111
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    35
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    36
cd local
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    37
hg verify
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    38
cat bar
1502
1170fef58071 Fixed test-static-http with http_proxy variable set again.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1128
diff changeset
    39
http_proxy= hg pull
1111
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    40
addcb77fe500 Add an old-http test case
mpm@selenic.com
parents:
diff changeset
    41
kill $!