annotate tests/test-incoming-outgoing @ 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 99d6cae511f7
children 9cceb439048b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2260
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
1 #!/bin/sh
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
2
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
3 mkdir test
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
4 cd test
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
5 hg init
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
6 for i in 0 1 2 3 4 5 6 7 8; do
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
7 echo $i >> foo
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
8 hg commit -A -m $i -d "1000000 0"
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
9 done
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
10 hg verify
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
11 hg serve -p 20059 -d --pid-file=hg.pid
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
12 cd ..
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
13
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
14 hg init new
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
15 # http incoming
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
16 http_proxy= hg -R new incoming http://localhost:20059/
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
17 # local incoming
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
18 hg -R new incoming test
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
19
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
20 # test with --bundle
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
21 http_proxy= hg -R new incoming --bundle test.hg http://localhost:20059/
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
22 hg -R new incoming --bundle test2.hg test
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
23
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
24 # test the resulting bundles
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
25 hg init temp
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
26 hg init temp2
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
27 hg -R temp unbundle test.hg
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
28 hg -R temp2 unbundle test2.hg
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
29 hg -R temp tip
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
30 hg -R temp2 tip
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
31
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
32 rm -rf temp temp2 new
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
33
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
34 # test outgoing
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
35 hg clone test test-dev
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
36 cd test-dev
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
37 for i in 9 10 11 12 13; do
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
38 echo $i >> foo
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
39 hg commit -A -m $i -d "1000000 0"
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
40 done
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
41 hg verify
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
42 cd ..
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
43 hg -R test-dev outgoing test
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
44 http_proxy= hg -R test-dev outgoing http://localhost:20059/
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
45
99d6cae511f7 add tests for incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
46 kill `cat test/hg.pid`