Mercurial > hg
view tests/test-ssh @ 8589:3edf133dcb5a
dirstate: skip step 3 in walk if nothing new will match
nothing will ever match on match.never
nothing new will match on match.exact (all found in step 1)
nothing new will match on match.match when
there is no pattern and
there is no direcory in pats
author | Simon Heimberg <simohe@besonet.ch> |
---|---|
date | Thu, 14 May 2009 19:54:26 +0200 |
parents | 9f76df0edb7d |
children | 4c94b6d0fb1c |
line wrap: on
line source
#!/bin/sh cp "$TESTDIR"/printenv.py . # This test tries to exercise the ssh functionality with a dummy script cat <<EOF > dummyssh import sys import os os.chdir(os.path.dirname(sys.argv[0])) if sys.argv[1] != "user@dummy": sys.exit(-1) if not os.path.exists("dummyssh"): sys.exit(-1) os.environ["SSH_CLIENT"] = "127.0.0.1 1 2" log = open("dummylog", "ab") log.write("Got arguments") for i, arg in enumerate(sys.argv[1:]): log.write(" %d:%s" % (i+1, arg)) log.write("\n") log.close() r = os.system(sys.argv[2]) sys.exit(bool(r)) EOF cat <<EOF > badhook import sys sys.stdout.write("KABOOM\n") EOF echo "# creating 'remote'" hg init remote cd remote echo this > foo echo this > fooO hg ci -A -m "init" -d "1000000 0" foo fooO echo '[server]' > .hg/hgrc echo 'uncompressed = True' >> .hg/hgrc echo '[hooks]' >> .hg/hgrc echo 'changegroup = python ../printenv.py changegroup-in-remote 0 ../dummylog' >> .hg/hgrc cd .. echo "# repo not found error" hg clone -e "python ./dummyssh" ssh://user@dummy/nonexistent local echo "# clone remote via stream" hg clone -e "python ./dummyssh" --uncompressed ssh://user@dummy/remote local-stream 2>&1 | \ sed -e 's/[0-9][0-9.]*/XXX/g' -e 's/[KM]\(B\/sec\)/X\1/' cd local-stream hg verify cd .. echo "# clone remote via pull" hg clone -e "python ./dummyssh" ssh://user@dummy/remote local echo "# verify" cd local hg verify echo '[hooks]' >> .hg/hgrc echo 'changegroup = python ../printenv.py changegroup-in-local 0 ../dummylog' >> .hg/hgrc echo "# empty default pull" hg paths hg pull -e "python ../dummyssh" echo "# local change" echo bleah > foo hg ci -m "add" -d "1000000 0" echo "# updating rc" echo "default-push = ssh://user@dummy/remote" >> .hg/hgrc echo "[ui]" >> .hg/hgrc echo "ssh = python ../dummyssh" >> .hg/hgrc echo "# find outgoing" hg out ssh://user@dummy/remote echo "# find incoming on the remote side" hg incoming -R ../remote -e "python ../dummyssh" ssh://user@dummy/local echo "# push" hg push cd ../remote echo "# check remote tip" hg tip hg verify hg cat -r tip foo echo z > z hg ci -A -m z -d '1000001 0' z # a bad, evil hook that prints to stdout echo 'changegroup.stdout = python ../badhook' >> .hg/hgrc cd ../local echo r > r hg ci -A -m z -d '1000002 0' r echo "# push should succeed even though it has an unexpected response" hg push hg -R ../remote heads cd .. cat dummylog