test-ssh.t
290 lines
| 8.2 KiB
| text/troff
|
Tads3Lexer
/ tests / test-ssh.t
|
r12414 | |||
This test tries to exercise the ssh functionality with a dummy script | ||||
|
r14185 | creating 'remote' repo | ||
|
r12414 | |||
$ hg init remote | ||||
$ cd remote | ||||
$ echo this > foo | ||||
$ echo this > fooO | ||||
$ hg ci -A -m "init" foo fooO | ||||
|
r14185 | $ cat <<EOF > .hg/hgrc | ||
|
r12969 | > [server] | ||
> uncompressed = True | ||||
> | ||||
> [hooks] | ||||
|
r13405 | > changegroup = python "$TESTDIR"/printenv.py changegroup-in-remote 0 ../dummylog | ||
|
r12969 | > EOF | ||
|
r12414 | $ cd .. | ||
repo not found error | ||||
|
r14186 | $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/nonexistent local | ||
|
r12414 | remote: abort: There is no Mercurial repository here (.hg not found)! | ||
abort: no suitable response from remote hg! | ||||
[255] | ||||
non-existent absolute path | ||||
|
r14186 | $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy//`pwd`/nonexistent local | ||
|
r12414 | remote: abort: There is no Mercurial repository here (.hg not found)! | ||
abort: no suitable response from remote hg! | ||||
[255] | ||||
clone remote via stream | ||||
|
r14186 | $ hg clone -e "python $TESTDIR/dummyssh" --uncompressed ssh://user@dummy/remote local-stream | ||
|
r12414 | streaming all changes | ||
|
r12489 | 4 files to transfer, 392 bytes of data | ||
|
r12773 | transferred 392 bytes in * seconds (*/sec) (glob) | ||
|
r12414 | updating to branch default | ||
|
r12489 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r12414 | $ cd local-stream | ||
$ hg verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
2 files, 1 changesets, 2 total revisions | ||||
$ cd .. | ||||
clone remote via pull | ||||
|
r14186 | $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote local | ||
|
r12414 | requesting all changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 2 changes to 2 files | ||||
updating to branch default | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
verify | ||||
$ cd local | ||||
$ hg verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
2 files, 1 changesets, 2 total revisions | ||||
$ echo '[hooks]' >> .hg/hgrc | ||||
|
r13405 | $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup-in-local 0 ../dummylog' >> .hg/hgrc | ||
|
r12414 | |||
empty default pull | ||||
$ hg paths | ||||
default = ssh://user@dummy/remote | ||||
|
r14186 | $ hg pull -e "python $TESTDIR/dummyssh" | ||
|
r12414 | pulling from ssh://user@dummy/remote | ||
searching for changes | ||||
no changes found | ||||
local change | ||||
$ echo bleah > foo | ||||
$ hg ci -m "add" | ||||
updating rc | ||||
$ echo "default-push = ssh://user@dummy/remote" >> .hg/hgrc | ||||
$ echo "[ui]" >> .hg/hgrc | ||||
|
r14186 | $ echo "ssh = python $TESTDIR/dummyssh" >> .hg/hgrc | ||
|
r12414 | |||
find outgoing | ||||
$ hg out ssh://user@dummy/remote | ||||
comparing with ssh://user@dummy/remote | ||||
searching for changes | ||||
changeset: 1:a28a9d1a809c | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: add | ||||
find incoming on the remote side | ||||
|
r14186 | $ hg incoming -R ../remote -e "python $TESTDIR/dummyssh" ssh://user@dummy/local | ||
|
r12414 | comparing with ssh://user@dummy/local | ||
searching for changes | ||||
changeset: 1:a28a9d1a809c | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: add | ||||
|
r12504 | find incoming on the remote side (using absolute path) | ||
|
r14186 | $ hg incoming -R ../remote -e "python $TESTDIR/dummyssh" "ssh://user@dummy/`pwd`" | ||
|
r12640 | comparing with ssh://user@dummy/$TESTTMP/local | ||
|
r12504 | searching for changes | ||
changeset: 1:a28a9d1a809c | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: add | ||||
|
r12414 | push | ||
$ hg push | ||||
pushing to ssh://user@dummy/remote | ||||
searching for changes | ||||
remote: adding changesets | ||||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 1 changesets with 1 changes to 1 files | ||||
$ cd ../remote | ||||
check remote tip | ||||
$ hg tip | ||||
changeset: 1:a28a9d1a809c | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: add | ||||
$ hg verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
2 files, 2 changesets, 3 total revisions | ||||
$ hg cat -r tip foo | ||||
bleah | ||||
$ echo z > z | ||||
$ hg ci -A -m z z | ||||
created new head | ||||
|
r12969 | test pushkeys and bookmarks | ||
$ cd ../local | ||||
|
r14186 | $ hg debugpushkey --config ui.ssh="python $TESTDIR/dummyssh" ssh://user@dummy/remote namespaces | ||
|
r12969 | bookmarks | ||
namespaces | ||||
$ hg book foo -r 0 | ||||
$ hg out -B | ||||
comparing with ssh://user@dummy/remote | ||||
searching for changed bookmarks | ||||
foo 1160648e36ce | ||||
$ hg push -B foo | ||||
pushing to ssh://user@dummy/remote | ||||
searching for changes | ||||
no changes found | ||||
exporting bookmark foo | ||||
|
r14186 | $ hg debugpushkey --config ui.ssh="python $TESTDIR/dummyssh" ssh://user@dummy/remote bookmarks | ||
|
r12969 | foo 1160648e36cec0054048a7edc4110c6f84fde594 | ||
$ hg book -f foo | ||||
|
r13050 | $ hg push --traceback | ||
|
r12969 | pushing to ssh://user@dummy/remote | ||
searching for changes | ||||
no changes found | ||||
updating bookmark foo | ||||
$ hg book -d foo | ||||
$ hg in -B | ||||
comparing with ssh://user@dummy/remote | ||||
searching for changed bookmarks | ||||
foo a28a9d1a809c | ||||
$ hg book -f -r 0 foo | ||||
$ hg pull -B foo | ||||
pulling from ssh://user@dummy/remote | ||||
no changes found | ||||
updating bookmark foo | ||||
importing bookmark foo | ||||
$ hg book -d foo | ||||
$ hg push -B foo | ||||
|
r13368 | pushing to ssh://user@dummy/remote | ||
searching for changes | ||||
no changes found | ||||
|
r12969 | deleting remote bookmark foo | ||
|
r12414 | a bad, evil hook that prints to stdout | ||
|
r14186 | $ cat <<EOF > $TESTTMP/badhook | ||
> import sys | ||||
> sys.stdout.write("KABOOM\n") | ||||
> EOF | ||||
|
r12969 | $ echo '[hooks]' >> ../remote/.hg/hgrc | ||
|
r14186 | $ echo "changegroup.stdout = python $TESTTMP/badhook" >> ../remote/.hg/hgrc | ||
|
r12414 | $ echo r > r | ||
$ hg ci -A -m z r | ||||
push should succeed even though it has an unexpected response | ||||
$ hg push | ||||
pushing to ssh://user@dummy/remote | ||||
searching for changes | ||||
note: unsynced remote changes! | ||||
remote: adding changesets | ||||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 1 changesets with 1 changes to 1 files | ||||
remote: KABOOM | ||||
$ hg -R ../remote heads | ||||
changeset: 3:1383141674ec | ||||
tag: tip | ||||
parent: 1:a28a9d1a809c | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: z | ||||
changeset: 2:6c0482d977a3 | ||||
parent: 0:1160648e36ce | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: z | ||||
|
r13464 | |||
|
r13604 | clone bookmarks | ||
$ hg -R ../remote bookmark test | ||||
$ hg -R ../remote bookmarks | ||||
* test 2:6c0482d977a3 | ||||
|
r14186 | $ hg clone -e "python $TESTDIR/dummyssh" ssh://user@dummy/remote local-bookmarks | ||
|
r13604 | requesting all changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 4 changesets with 5 changes to 4 files (+1 heads) | ||||
updating to branch default | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg -R local-bookmarks bookmarks | ||||
test 2:6c0482d977a3 | ||||
|
r13464 | passwords in ssh urls are not supported | ||
|
r13755 | (we use a glob here because different Python versions give different | ||
results here) | ||||
|
r13464 | |||
$ hg push ssh://user:erroneouspwd@dummy/remote | ||||
|
r13755 | pushing to ssh://user:*@dummy/remote (glob) | ||
|
r13464 | abort: password in URL not supported! | ||
[255] | ||||
|
r12414 | $ cd .. | ||
$ cat dummylog | ||||
Got arguments 1:user@dummy 2:hg -R nonexistent serve --stdio | ||||
|
r12640 | Got arguments 1:user@dummy 2:hg -R /$TESTTMP/nonexistent serve --stdio | ||
|
r12414 | Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
Got arguments 1:user@dummy 2:hg -R local serve --stdio | ||||
|
r12640 | Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio | ||
|
r12414 | Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||
|
r14185 | changegroup-in-remote hook: HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1 | ||
|
r12969 | Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
|
r12414 | Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||
|
r12969 | Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||||
|
r14185 | changegroup-in-remote hook: HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1 | ||
|
r13604 | Got arguments 1:user@dummy 2:hg -R remote serve --stdio | ||