[PATCH v3] rollback: add a config knob for entirely disabling the command
Augie Fackler
raf at durin42.com
Wed May 4 15:03:09 UTC 2016
# HG changeset patch
# User Augie Fackler <augie at google.com>
# Date 1462307605 14400
# Tue May 03 16:33:25 2016 -0400
# Node ID 689b8a0a3c5e32e8c7b1358b51fd87d69207973c
# Parent 8eba4cdcfd810d80785c94d770a442c5bd1f9d0f
rollback: add a config knob for entirely disabling the command
This is of pretty high value for organizations that used to use p4 (as
an example), since `p4 rollback` is what we call `hg backout`.
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -6377,6 +6377,11 @@ def rollback(ui, repo, **opts):
commit transaction if it isn't checked out. Use --force to
override this protection.
+ The rollback command can be entirely disabled using the
+ ``ui.norollback`` configuration setting. If you're here because
+ you want to use rollback and it's disabled, you can re-enable
+ the command by setting ``ui.norollback`` to true.
+
This command is not intended for use on public repositories. Once
changes are visible for pull by other users, rolling a transaction
back locally is ineffective (someone else may already have pulled
@@ -6386,6 +6391,9 @@ def rollback(ui, repo, **opts):
Returns 0 on success, 1 if no rollback data is available.
"""
+ if ui.configbool('ui', 'norollback', False):
+ raise error.Abort(_('rollback is disabled because it is unsafe'),
+ hint=('see `hg help -v rollback` for information'))
return repo.rollback(dryrun=opts.get('dry_run'),
force=opts.get('force'))
diff --git a/tests/test-rollback.t b/tests/test-rollback.t
--- a/tests/test-rollback.t
+++ b/tests/test-rollback.t
@@ -196,3 +196,15 @@ corrupt journal test
checking files
1 files, 2 changesets, 2 total revisions
+rollback disabled by config
+ $ cat >> $HGRCPATH <<EOF
+ > [ui]
+ > norollback = true
+ > EOF
+ $ echo narf >> pinky-sayings.txt
+ $ hg add pinky-sayings.txt
+ $ hg ci -m 'First one.'
+ $ hg rollback
+ abort: rollback is disabled because it is unsafe
+ (see `hg help -v rollback` for information)
+ [255]
More information about the Mercurial-devel
mailing list