Patchwork D3847: fix: disallow 'hg fix --base <rev> --whole'

login
register
mail settings
Submitter phabricator
Date June 27, 2018, 1:08 a.m.
Message ID <differential-rev-PHID-DREV-qg2p447sshzvmrcjpd5s-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/32456/
State Superseded
Headers show

Comments

phabricator - June 27, 2018, 1:08 a.m.
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




To: hooper, #hg-reviewers
Cc: mercurial-devel
phabricator - July 3, 2018, 11:57 p.m.
hooper added a comment.


  Let's not commit this one if possible. I have another patch with a test case that shows the combination is useful.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3847

To: hooper, #hg-reviewers, durin42
Cc: mercurial-devel
Yuya Nishihara - July 4, 2018, 12:35 p.m.
>   Let's not commit this one if possible. I have another patch with a test
> case that shows the combination is useful.

Oops. Pruned from the hg-committed repository. Next time, can you exclude
this kind of patches from the series somehow?
phabricator - July 4, 2018, 12:36 p.m.
yuja added a comment.


  >   Let's not commit this one if possible. I have another patch with a test
  > 
  > case that shows the combination is useful.
  
  Oops. Pruned from the hg-committed repository. Next time, can you exclude
  this kind of patches from the series somehow?

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3847

To: hooper, #hg-reviewers, durin42
Cc: yuja, mercurial-devel

Patch

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}