tests/test-abort-checkin.t
author Martin von Zweigbergk <martinvonz@google.com>
Thu, 22 Jul 2021 17:12:56 -0700
branchstable
changeset 47765 184d83ef2e59
parent 36375 f798709eb4b9
permissions -rw-r--r--
tests: demonstrate bug in `hg fix` with incorrectly dirty working copy If the parent commit needs formatting but the working copy already has the correct formatting, then the working copy will be reported as modified even though it's clean (because the size in the dirstate is incorrect). Because the bug only occurs when the size changes, I modified the formatter used in the test case to remove repeated spaces. Differential Revision: https://phab.mercurial-scm.org/D11208

  $ cat > abortcommit.py <<EOF
  > from mercurial import error
  > def hook(**args):
  >     raise error.Abort(b"no commits allowed")
  > def reposetup(ui, repo):
  >     repo.ui.setconfig(b"hooks", b"pretxncommit.nocommits", hook)
  > EOF
  $ abspath=`pwd`/abortcommit.py

  $ cat <<EOF >> $HGRCPATH
  > [extensions]
  > mq =
  > abortcommit = $abspath
  > EOF

  $ 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]

  $ cd ..