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} 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.