Mercurial > hg
annotate tests/test-push-cgi.t @ 23896:becfecaf9087
changegroup.writebundle: HG2Y support
This diff adds support to writebundle to generate a bundle2 wrapper; upcoming
diffs will add an option to write a v2 changegroup part instead of v1 in these
bundles.
author | Eric Sumner <ericsumner@fb.com> |
---|---|
date | Thu, 15 Jan 2015 15:39:16 -0800 |
parents | 7a9cbb315d84 |
children | c739b1e4b203 |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
18957
diff
changeset
|
1 #require no-msys # MSYS will translate web paths as if they were file paths |
15567
8b84d040d9f9
tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents:
13946
diff
changeset
|
2 |
13397
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
3 This is a test of the push wire protocol over CGI-based hgweb. |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
4 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
5 initialize repository |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
6 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
7 $ hg init r |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
8 $ cd r |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
9 $ echo a > a |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
10 $ hg ci -A -m "0" |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
11 adding a |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
12 $ echo '[web]' > .hg/hgrc |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
13 $ echo 'allow_push = *' >> .hg/hgrc |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
14 $ echo 'push_ssl = false' >> .hg/hgrc |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
15 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
16 create hgweb invocation script |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
17 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
18 $ cat >hgweb.cgi <<HGWEB |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
19 > import cgitb |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
20 > cgitb.enable() |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
21 > from mercurial import demandimport; demandimport.enable() |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
22 > from mercurial.hgweb import hgweb |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
23 > from mercurial.hgweb import wsgicgi |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
24 > application = hgweb('.', 'test repository') |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
25 > wsgicgi.launch(application) |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
26 > HGWEB |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
27 $ chmod 755 hgweb.cgi |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
28 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
29 test preparation |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
30 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
31 $ . "$TESTDIR/cgienv" |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
32 $ REQUEST_METHOD="POST"; export REQUEST_METHOD |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
33 $ CONTENT_TYPE="application/octet-stream"; export CONTENT_TYPE |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
34 $ hg bundle --all bundle.hg |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
35 1 changesets found |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
36 $ CONTENT_LENGTH=279; export CONTENT_LENGTH; |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
37 |
18957
6b618aa08b6e
wireproto: clarify cryptic 'remote: unsynced changes' error message on push
Mads Kiilerich <madski@unity3d.com>
parents:
18346
diff
changeset
|
38 expect failure because heads doesn't match (formerly known as 'unsynced changes') |
13397
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
39 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
40 $ QUERY_STRING="cmd=unbundle&heads=0000000000000000000000000000000000000000"; export QUERY_STRING |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
41 $ python hgweb.cgi <bundle.hg >page1 2>&1 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
42 $ cat page1 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
43 Status: 200 Script output follows\r (esc) |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
44 Content-Type: application/mercurial-0.1\r (esc) |
18957
6b618aa08b6e
wireproto: clarify cryptic 'remote: unsynced changes' error message on push
Mads Kiilerich <madski@unity3d.com>
parents:
18346
diff
changeset
|
45 Content-Length: 64\r (esc) |
13397
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
46 \r (esc) |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
47 0 |
18957
6b618aa08b6e
wireproto: clarify cryptic 'remote: unsynced changes' error message on push
Mads Kiilerich <madski@unity3d.com>
parents:
18346
diff
changeset
|
48 repository changed while preparing changes - please try again |
13397
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
49 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
50 successful force push |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
51 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
52 $ QUERY_STRING="cmd=unbundle&heads=666f726365"; export QUERY_STRING |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
53 $ python hgweb.cgi <bundle.hg >page2 2>&1 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
54 $ cat page2 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
55 Status: 200 Script output follows\r (esc) |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
56 Content-Type: application/mercurial-0.1\r (esc) |
18346
6c2563b2c1c6
hgweb: use Content-Length for pushres
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
57 Content-Length: 102\r (esc) |
13397
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
58 \r (esc) |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
59 1 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
60 adding changesets |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
61 adding manifests |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
62 adding file changes |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
63 added 0 changesets with 0 changes to 1 files |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
64 |
13946
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
65 successful push, list of heads |
13397
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
66 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
67 $ QUERY_STRING="cmd=unbundle&heads=f7b1eb17ad24730a1651fccd46c43826d1bbc2ac"; export QUERY_STRING |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
68 $ python hgweb.cgi <bundle.hg >page3 2>&1 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
69 $ cat page3 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
70 Status: 200 Script output follows\r (esc) |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
71 Content-Type: application/mercurial-0.1\r (esc) |
18346
6c2563b2c1c6
hgweb: use Content-Length for pushres
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
72 Content-Length: 102\r (esc) |
13397
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
73 \r (esc) |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
74 1 |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
75 adding changesets |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
76 adding manifests |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
77 adding file changes |
6f9616a46f7c
tests: push wire protocol over CGI-based hgweb
Steven Brown <StevenGBrown@gmail.com>
parents:
diff
changeset
|
78 added 0 changesets with 0 changes to 1 files |
13946
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
79 |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
80 successful push, SHA1 hash of heads (unbundlehash capability) |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
81 |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
82 $ QUERY_STRING="cmd=unbundle&heads=686173686564 5a785a5f9e0d433b88ed862b206b011b0c3a9d13"; export QUERY_STRING |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
83 $ python hgweb.cgi <bundle.hg >page4 2>&1 |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
84 $ cat page4 |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
85 Status: 200 Script output follows\r (esc) |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
86 Content-Type: application/mercurial-0.1\r (esc) |
18346
6c2563b2c1c6
hgweb: use Content-Length for pushres
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
87 Content-Length: 102\r (esc) |
13946
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
88 \r (esc) |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
89 1 |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
90 adding changesets |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
91 adding manifests |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
92 adding file changes |
3c2f9f611ef6
tests: new test cases for the unbundlehash capability
Steven Brown <StevenGBrown@gmail.com>
parents:
13397
diff
changeset
|
93 added 0 changesets with 0 changes to 1 files |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15567
diff
changeset
|
94 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15567
diff
changeset
|
95 $ cd .. |