test-push-cgi.t
90 lines
| 2.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-push-cgi.t
Mads Kiilerich
|
r15567 | $ "$TESTDIR/hghave" no-msys || exit 80 # MSYS will translate web paths as if they were file paths | ||
Steven Brown
|
r13397 | This is a test of the push wire protocol over CGI-based hgweb. | ||
initialize repository | ||||
$ hg init r | ||||
$ cd r | ||||
$ echo a > a | ||||
$ hg ci -A -m "0" | ||||
adding a | ||||
$ echo '[web]' > .hg/hgrc | ||||
$ echo 'allow_push = *' >> .hg/hgrc | ||||
$ echo 'push_ssl = false' >> .hg/hgrc | ||||
create hgweb invocation script | ||||
$ cat >hgweb.cgi <<HGWEB | ||||
> import cgitb | ||||
> cgitb.enable() | ||||
> from mercurial import demandimport; demandimport.enable() | ||||
> from mercurial.hgweb import hgweb | ||||
> from mercurial.hgweb import wsgicgi | ||||
> application = hgweb('.', 'test repository') | ||||
> wsgicgi.launch(application) | ||||
> HGWEB | ||||
$ chmod 755 hgweb.cgi | ||||
test preparation | ||||
$ . "$TESTDIR/cgienv" | ||||
$ REQUEST_METHOD="POST"; export REQUEST_METHOD | ||||
$ CONTENT_TYPE="application/octet-stream"; export CONTENT_TYPE | ||||
$ hg bundle --all bundle.hg | ||||
1 changesets found | ||||
$ CONTENT_LENGTH=279; export CONTENT_LENGTH; | ||||
expect unsynced changes | ||||
$ QUERY_STRING="cmd=unbundle&heads=0000000000000000000000000000000000000000"; export QUERY_STRING | ||||
$ python hgweb.cgi <bundle.hg >page1 2>&1 | ||||
$ cat page1 | ||||
Status: 200 Script output follows\r (esc) | ||||
Content-Type: application/mercurial-0.1\r (esc) | ||||
Content-Length: 19\r (esc) | ||||
\r (esc) | ||||
0 | ||||
unsynced changes | ||||
successful force push | ||||
$ QUERY_STRING="cmd=unbundle&heads=666f726365"; export QUERY_STRING | ||||
$ python hgweb.cgi <bundle.hg >page2 2>&1 | ||||
$ cat page2 | ||||
Status: 200 Script output follows\r (esc) | ||||
Content-Type: application/mercurial-0.1\r (esc) | ||||
\r (esc) | ||||
1 | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 0 changesets with 0 changes to 1 files | ||||
Steven Brown
|
r13946 | successful push, list of heads | ||
Steven Brown
|
r13397 | |||
$ QUERY_STRING="cmd=unbundle&heads=f7b1eb17ad24730a1651fccd46c43826d1bbc2ac"; export QUERY_STRING | ||||
$ python hgweb.cgi <bundle.hg >page3 2>&1 | ||||
$ cat page3 | ||||
Status: 200 Script output follows\r (esc) | ||||
Content-Type: application/mercurial-0.1\r (esc) | ||||
\r (esc) | ||||
1 | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 0 changesets with 0 changes to 1 files | ||||
Steven Brown
|
r13946 | |||
successful push, SHA1 hash of heads (unbundlehash capability) | ||||
$ QUERY_STRING="cmd=unbundle&heads=686173686564 5a785a5f9e0d433b88ed862b206b011b0c3a9d13"; export QUERY_STRING | ||||
$ python hgweb.cgi <bundle.hg >page4 2>&1 | ||||
$ cat page4 | ||||
Status: 200 Script output follows\r (esc) | ||||
Content-Type: application/mercurial-0.1\r (esc) | ||||
\r (esc) | ||||
1 | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 0 changesets with 0 changes to 1 files | ||||