view tests/test-abort-checkin.t @ 15264:157d93c41c10

merge: expand environment variables and ~/ in tool.executable hgrc(5) already implies that this works, so we might as well support it. Another approach would be to implement this in util.findexe(): that would benefit other callers of findexe(), e.g. convert and anyone calling the user's editor. But findexe() is really implemented in both posix.py and windows.py, so this would make both of those modules depend on util.py: not good. So keep it narrow and only for merge tools.
author Greg Ward <greg@gerg.ca>
date Wed, 12 Oct 2011 21:45:58 -0400
parents 92e30e135581
children f2719b387380
line wrap: on
line source

  $ 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
  error: pretxncommit.nocommits hook failed: no commits allowed
  transaction abort!
  rollback completed
  abort: no commits allowed
  [255]
  $ hg ci -m foo
  error: pretxncommit.nocommits hook failed: no commits allowed
  transaction abort!
  rollback completed
  abort: no commits allowed
  [255]