tests/test-abort-checkin
author Matt Mackall <mpm@selenic.com>
Sun, 22 Jul 2007 14:53:57 -0500
changeset 4970 30d4d8985dd8
parent 4140 193e0f8d9a47
permissions -rwxr-xr-x
transactions: avoid late tear-down (issue641) We use weak references (ugh) to avoid having to manually delete transaction references out of each call frame when an exception occurs.

#!/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