Patchwork D7698: cmdutil: return underscore-separate name from check_at_most_one_arg()

login
register
mail settings
Submitter phabricator
Date Dec. 18, 2019, 7:39 p.m.
Message ID <differential-rev-PHID-DREV-lkntgy2fto7iru44pqd6-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/43978/
State Superseded
Headers show

Comments

phabricator - Dec. 18, 2019, 7:39 p.m.
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  As noticed by Yuya, when I changed the function (during review) to
  work with underscore-separated names as input, I forgot to make sure
  the returned name was also underscore-separated. We don't have any
  cases where it matters yet, but it should still clearly be fixed.
  
  Instead of converting the hyphen-separated value we already have in
  `previous`, I'm changing it so we convert to the underscore-separated
  values to be hyphen-separated only when we need to display them. This
  will also help a coming change where we allow the inputs to native
  strings instead only bytes.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/cmdutil.py

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -265,13 +265,17 @@ 
 
     Returns the unique argument or None if none of them were specified.
     """
+
+    def to_display(name):
+        return name.replace(b'_', b'-')
+
     previous = None
     for x in args:
         if opts.get(x):
-            x = x.replace(b'_', b'-')
             if previous:
                 raise error.Abort(
-                    _(b'cannot specify both --%s and --%s') % (previous, x)
+                    _(b'cannot specify both --%s and --%s')
+                    % (to_display(previous), to_display(x))
                 )
             previous = x
     return previous