named branches: improve pre-push logic (issue736)
Each named branch is considered separately, and the push is allowed if
no new branch heads are created for any named branch to be pushed.
Due to some tests's use of --debug, their output will change after this
addition. This has been fixed as well.
Co-contributor: Henrik Stuart <henrik.stuart@edlund.dk>
#!/bin/sh
cp "$TESTDIR"/printenv.py .
hg init test
cd test
echo a > a
hg ci -Ama
cd ..
hg clone test test2
cd test2
echo a >> a
hg ci -mb
echo % expect error, cloning not allowed
echo '[web]' > .hg/hgrc
echo 'allowpull = false' >> .hg/hgrc
hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
cat hg.pid >> $DAEMON_PIDS
hg clone http://localhost:$HGPORT/ test3 | sed -e 's,:[0-9][0-9]*/,/,'
"$TESTDIR/killdaemons.py"
echo % serve errors
cat errors.log
req() {
hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
cat hg.pid >> $DAEMON_PIDS
hg --cwd ../test pull http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,'
kill `cat hg.pid`
echo % serve errors
cat errors.log
}
echo % expect error, pulling not allowed
req