tests/test-abort-checkin
author Maxim Dounin <mdounin@mdounin.ru>
Wed, 07 May 2008 14:32:00 +0400
changeset 6651 7f0dd352fb4d
parent 4140 193e0f8d9a47
permissions -rwxr-xr-x
addremove: correctly handle intermediate symlinks This fixes problems mentioned in issue660 comments (unrelated to original issue) where directory was renamed, and symlink was added instead. In such situation addremove wasn't able to correctly detect that old files no longer here, but tried to add symlink (and failed due collision with old files).

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