cmdutil: make resolvecommitoptions() work on str-keyed opts
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 10 Jun 2021 15:45:22 -0700
changeset 47432 7f7457f84311
parent 47431 fca9c63f160e
child 47433 fc8e29ffc380
cmdutil: make resolvecommitoptions() work on str-keyed opts As with `checknotesize()`, I also changed to snake_case while at it, to help extensions a little. Differential Revision: https://phab.mercurial-scm.org/D10863
hgext/uncommit.py
mercurial/cmdutil.py
mercurial/commands.py
--- a/hgext/uncommit.py	Thu Jun 10 14:55:10 2021 -0700
+++ b/hgext/uncommit.py	Thu Jun 10 15:45:22 2021 -0700
@@ -154,8 +154,8 @@
     given.
     """
     cmdutil.check_note_size(opts)
+    cmdutil.resolve_commit_options(ui, opts)
     opts = pycompat.byteskwargs(opts)
-    cmdutil.resolvecommitoptions(ui, opts)
 
     with repo.wlock(), repo.lock():
 
--- a/mercurial/cmdutil.py	Thu Jun 10 14:55:10 2021 -0700
+++ b/mercurial/cmdutil.py	Thu Jun 10 15:45:22 2021 -0700
@@ -301,29 +301,29 @@
         check_at_most_one_arg(opts, first, other)
 
 
-def resolvecommitoptions(ui, opts):
+def resolve_commit_options(ui, opts):
     """modify commit options dict to handle related options
 
     The return value indicates that ``rewrite.update-timestamp`` is the reason
     the ``date`` option is set.
     """
-    check_at_most_one_arg(opts, b'date', b'currentdate')
-    check_at_most_one_arg(opts, b'user', b'currentuser')
+    check_at_most_one_arg(opts, 'date', 'currentdate')
+    check_at_most_one_arg(opts, 'user', 'currentuser')
 
     datemaydiffer = False  # date-only change should be ignored?
 
-    if opts.get(b'currentdate'):
-        opts[b'date'] = b'%d %d' % dateutil.makedate()
+    if opts.get('currentdate'):
+        opts['date'] = b'%d %d' % dateutil.makedate()
     elif (
-        not opts.get(b'date')
+        not opts.get('date')
         and ui.configbool(b'rewrite', b'update-timestamp')
-        and opts.get(b'currentdate') is None
+        and opts.get('currentdate') is None
     ):
-        opts[b'date'] = b'%d %d' % dateutil.makedate()
+        opts['date'] = b'%d %d' % dateutil.makedate()
         datemaydiffer = True
 
-    if opts.get(b'currentuser'):
-        opts[b'user'] = ui.username()
+    if opts.get('currentuser'):
+        opts['user'] = ui.username()
 
     return datemaydiffer
 
@@ -2783,7 +2783,6 @@
 
 
 def amend(ui, repo, old, extra, pats, opts):
-    opts = pycompat.byteskwargs(opts)
     # avoid cycle context -> subrepo -> cmdutil
     from . import context
 
@@ -2816,7 +2815,8 @@
         extra.update(wctx.extra())
 
         # date-only change should be ignored?
-        datemaydiffer = resolvecommitoptions(ui, opts)
+        datemaydiffer = resolve_commit_options(ui, opts)
+        opts = pycompat.byteskwargs(opts)
 
         date = old.date()
         if opts.get(b'date'):
--- a/mercurial/commands.py	Thu Jun 10 14:55:10 2021 -0700
+++ b/mercurial/commands.py	Thu Jun 10 15:45:22 2021 -0700
@@ -3104,8 +3104,8 @@
     # list of new nodes created by ongoing graft
     statedata[b'newnodes'] = []
 
+    cmdutil.resolve_commit_options(ui, opts)
     opts = pycompat.byteskwargs(opts)
-    cmdutil.resolvecommitoptions(ui, opts)
 
     editor = cmdutil.getcommiteditor(
         editform=b'graft', **pycompat.strkwargs(opts)