diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2783,6 +2783,7 @@ def amend(ui, repo, old, extra, pats, opts): + opts = pycompat.byteskwargs(opts) # avoid cycle context -> subrepo -> cmdutil from . import context diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2135,8 +2135,8 @@ if not obsolete.isenabled(repo, obsolete.createmarkersopt): cmdutil.checkunfinished(repo) + node = cmdutil.amend(ui, repo, old, extra, pats, opts) opts = pycompat.byteskwargs(opts) - node = cmdutil.amend(ui, repo, old, extra, pats, opts) if node == old.node(): ui.status(_(b"nothing changed\n")) return 1 diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t --- a/tests/test-obsolete.t +++ b/tests/test-obsolete.t @@ -1478,9 +1478,8 @@ > command = registrar.command(cmdtable) > @command(b"amendtransient",[], _(b'hg amendtransient [rev]')) > def amend(ui, repo, *pats, **opts): - > opts = pycompat.byteskwargs(opts) - > opts[b'message'] = b'Test' - > opts[b'logfile'] = None + > opts['message'] = b'Test' + > opts['logfile'] = None > cmdutil.amend(ui, repo, repo[b'.'], {}, pats, opts) > ui.write(b'%s\n' % stringutil.pprint(repo.changelog.headrevs())) > EOF