sapling/eden/scm/tests/test-abort-checkin-t.py
Jun Wu b80966f93c revlog: turn on head-based-commit-transaction for tests
Summary:
Bypass truncation-based transaction if narrow-heads is on.

The transaction abort still works logically because commit references stay
unchanged on abort.

Related EdenFS and Mononoke tests are updated. Mononoke tests probably
shouldn't rely on revlog / fncache implementation details in hg.

Reviewed By: DurhamG

Differential Revision: D22240186

fbshipit-source-id: f97efd60855467b52c9fb83e7c794ded269e9617
2020-07-08 14:33:58 -07:00

45 lines
1.1 KiB
Python

# Copyright (c) Facebook, Inc. and its affiliates.
# Copyright (c) Mercurial Contributors.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from testutil.dott import feature, sh, testtmp # noqa: F401
sh % "cat" << r"""
from edenscm.mercurial import error
def hook(**args):
raise error.Abort("no commits allowed")
def reposetup(ui, repo):
repo.ui.setconfig("hooks", "pretxncommit.nocommits", hook)
""" > "abortcommit.py"
sh % "'abspath=`pwd`/abortcommit.py'"
sh % "cat" << r"""
[extensions]
mq =
abortcommit = $abspath
""" >> "$HGRCPATH"
sh % "hg init foo"
sh % "cd foo"
sh % "echo foo" > "foo"
sh % "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:
sh % "hg ci -m foo" == r"""
error: pretxncommit.nocommits hook failed: no commits allowed
abort: no commits allowed
[255]"""
sh % "hg ci -m foo" == r"""
error: pretxncommit.nocommits hook failed: no commits allowed
abort: no commits allowed
[255]"""
sh % "cd .."