sapling/eden/scm/tests/test-abort-checkin-t.py
Jun Wu 2a99866d7b codemod: update license headers
Summary:
The "Portions" license cannot be updated automatically. So this is a manual
update using:

  sd -s 'Portions Copyright (c) Facebook, Inc. and its affiliates.' 'Portions Copyright (c) Meta Platforms, Inc. and affiliates.' `rg -l Facebook`
  sd -s 'Copyright (c) Facebook, Inc. and its affiliates.' 'Copyright (c) Meta Platforms, Inc. and affiliates.' `rg -l Facebook`

Differential Revision: D33420114

fbshipit-source-id: 49ae00a7b62e3b8cc6c5dd839b3c104a75e72a56
2022-01-05 14:43:32 -08:00

49 lines
1.2 KiB
Python

# Copyright (c) Meta Platforms, Inc. and 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 .."