Add symlink method to util.opener.
Differences from os.symlink:
- the symlink name is relative to the opener base directory
- if a file with that name already exists, it's removed
- if necessary, parent directories are created
- if the system (OS or filesystem) doesn't support symlinks, a
regular file is created. Its contents are the symlink target.
#!/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