tests/test-abort-checkin
author Nicolas Dumazet <nicdumz.commits@gmail.com>
Thu, 26 Mar 2009 19:01:06 +0900
changeset 7892 67e59a9886d5
parent 4140 193e0f8d9a47
permissions -rwxr-xr-x
Fixing issue1542, adding a relevant test inotify is smart enough to notify you about any changes in a directory, even if you only watch the directory, and none if its contents: the recursive add_watch I added was unnecessary. The only thing that matters here is the recursive status update on directory deletion. And scan() has to be called _before_ the deferred call is registered. (race condition: depending on the times, the previous patch could apparently fail on the provided test. It's not the case anymore.)

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