del transaction before lock before wlock
This way rollbacks happen while the repo is still locked.
Deleting lock before wlock is not strictly necessary, but is
more consistent with the locking order.
#!/bin/sh
cat > abortcommit.py <<EOF
from mercurial import util
def hook(**args):
raise util.Abort("no commits allowed")
def reposetup(ui, repo):
repo.ui.setconfig("hooks", "pretxncommit.nocommits", hook)
EOF
abspath=`pwd`/abortcommit.py
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "abortcommit = $abspath" >> $HGRCPATH
hg init foo
cd foo
echo foo > foo
hg add foo
# mq may keep a reference to the repository so __del__ will not be called
# and .hg/journal.dirstate will not be deleted:
hg ci -m foo
hg ci -m foo
exit 0