view tests/test-ssh @ 1537:583b3696d24d

Added hg-ssh - a wrapper for ssh access to a limited set of mercurial repos To be used in ~/.ssh/authorized_keys with the "command" option, see sshd(8): command="hg-ssh path/to/repo1 /path/to/repo2 ~/repo3 ~user/repo4" ssh-dss ... (probably together with these other useful options: no-port-forwarding,no-X11-forwarding,no-agent-forwarding) This allows pull/push over ssh to to the repositories given as arguments. If all your repositories are subdirectories of a common directory, you can allow shorter paths with: command="cd path/to/my/repositories && hg-ssh repo1 subdir/repo2"
author Thomas Arendsen Hein <thomas@intevation.de>
date Sun, 13 Nov 2005 02:06:02 +0100
parents 235e0effa672
children 7544700fd931
line wrap: on
line source

#!/bin/sh

# This test tries to exercise the ssh functionality with a dummy script

cat <<'EOF' > dummyssh
#!/bin/sh
# this attempts to deal with relative pathnames
cd `dirname $0`

# check for proper args
if [ $1 != "user@dummy" ] ; then
	exit -1
fi

# check that we're in the right directory
if [ ! -x dummyssh ] ; then
	exit -1
fi

echo Got arguments 1:$1 2:$2 3:$3 4:$4 5:$5 >> dummylog
$2
EOF
chmod +x dummyssh

echo "# creating 'remote'"
hg init remote
cd remote
echo this > foo
hg ci -A -m "init" -d "0 0" foo

cd ..

echo "# clone remote"
hg clone -e ./dummyssh ssh://user@dummy/remote local

echo "# verify"
cd local
hg verify

echo "# empty default pull"
hg paths
hg pull -e ../dummyssh

echo "# local change"
echo bleah > foo
hg ci -m "add" -d "0 0"

echo "# updating rc"
echo "default-push = ssh://user@dummy/remote" >> .hg/hgrc
echo "[ui]" >> .hg/hgrc
echo "ssh = ../dummyssh" >> .hg/hgrc

echo "# find outgoing"
hg out ssh://user@dummy/remote

echo "# push"
hg push

cd ../remote

echo "# check remote tip"
hg tip
hg verify
hg cat foo

cd ..
cat dummylog