tests/test-push-http
author John Coomes <john.coomes@sun.com>
Fri, 14 Mar 2008 15:38:56 -0700
changeset 6321 55ba3bc5b8fd
parent 6167 f53b9a383476
child 8167 6c82beaaa11a
permissions -rwxr-xr-x
tag: allow multiple tags to be added or removed - Example: "hg tag -r 42 build-25 beta-1" will add tags build-25 and beta-1 for rev 42. - The deprecated and undocumented usage "hg tag arg1 arg2" used to emit a warning, then add tag arg1 for rev arg2 (equivalent to "hg tag -r arg2 arg1"). It will now add tags arg1 and arg2 for the current revision. - If one tag triggers an error, no tags are added/removed (all or nothing).

#!/bin/sh

cp "$TESTDIR"/printenv.py .

hg init test
cd test
echo a > a
hg ci -Ama -d '0 0'

cd ..
hg clone test test2
cd test2
echo a >> a
hg ci -mb -d '0 0'

req() {
	hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
	cat hg.pid >> $DAEMON_PIDS
	hg --cwd ../test2 push http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,'
	kill `cat hg.pid`
	echo % serve errors
	cat errors.log
}

cd ../test

echo % expect ssl error
req

echo % expect authorization error
echo '[web]' > .hg/hgrc
echo 'push_ssl = false' >> .hg/hgrc
req

echo % expect authorization error: must have authorized user
echo 'allow_push = unperson' >> .hg/hgrc
req

echo % expect success
echo 'allow_push = *' >> .hg/hgrc
echo '[hooks]' >> .hg/hgrc
echo 'changegroup = python ../printenv.py changegroup 0 ../urls' >> .hg/hgrc
req

cat ../urls

hg rollback
echo % expect authorization error: all users denied
echo '[web]' > .hg/hgrc
echo 'push_ssl = false' >> .hg/hgrc
echo 'deny_push = *' >> .hg/hgrc
req

echo % expect authorization error: some users denied, users must be authenticated
echo 'deny_push = unperson' >> .hg/hgrc
req