Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-static-http @ 2439:e8c4f3d3df8c
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'.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Thu, 15 Jun 2006 16:37:23 -0700 |
parents | d90a9d7c7d4d |
children | d22d730c96ed |
rev | line source |
---|---|
1111 | 1 #!/bin/sh |
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 | 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 | 6 |
7 # This server doesn't do range requests so it's basically only good for | |
8 # one pull | |
9 cat > dumb.py <<EOF | |
10 import BaseHTTPServer, SimpleHTTPServer, signal | |
11 | |
12 def run(server_class=BaseHTTPServer.HTTPServer, | |
13 handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler): | |
14 server_address = ('localhost', 20059) | |
15 httpd = server_class(server_address, handler_class) | |
16 httpd.serve_forever() | |
17 | |
18 signal.signal(signal.SIGTERM, lambda x: sys.exit(0)) | |
19 run() | |
20 EOF | |
21 | |
22 python dumb.py 2>/dev/null & | |
23 | |
24 mkdir remote | |
25 cd remote | |
26 hg init | |
27 echo foo > bar | |
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 | 30 hg tip |
31 | |
32 cd .. | |
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 | 35 |
36 cd local | |
37 hg verify | |
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 | 40 |
41 kill $! |