D3847: fix: disallow 'hg fix --base <rev> --whole'
hooper (Danny Hooper)
phabricator at mercurial-scm.org
Wed Jun 27 01:08:01 UTC 2018
hooper created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
The two flags have conflicting meaning, so we shouldn't pretend to honor both
(otherwise, --whole takes precedence in the current implementation).
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D3847
AFFECTED FILES
hgext/fix.py
tests/test-fix.t
CHANGE DETAILS
diff --git a/tests/test-fix.t b/tests/test-fix.t
--- a/tests/test-fix.t
+++ b/tests/test-fix.t
@@ -178,6 +178,9 @@
abort: no changesets specified
(use --rev or --working-dir)
[255]
+ $ hg fix --base 0 --whole --working-dir
+ abort: --base has no meaning in addition to --whole
+ [255]
Fixing a public revision isn't allowed. It should abort early enough that
nothing happens, even to the working directory.
diff --git a/hgext/fix.py b/hgext/fix.py
--- a/hgext/fix.py
+++ b/hgext/fix.py
@@ -387,6 +387,8 @@
# The --base flag overrides the usual logic, and we give every revision
# exactly the set of baserevs that the user specified.
if opts.get('base'):
+ if opts.get('whole'):
+ raise error.Abort('--base has no meaning in addition to --whole')
baserevs = set(scmutil.revrange(repo, opts.get('base')))
if not baserevs:
baserevs = {nullrev}
To: hooper, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list