changeset 48461:eaad68294904

status: when extracting arguments from `opts`, use the same default values Sometimes other code, such as commit when using `commands.commit.post-status`, calls `commands.status()` without going through the normal dispatch mechanism that would typically fill in the args to be something besides None. As a "defense in depth" mechanism for a bug where Mercurial would crash if both `commands.commit.post-status` and `experimental.directaccess` were enabled, let's sanitize these values to be identical to the values they would have when the user invoked this method from the commandline. Differential Revision: https://phab.mercurial-scm.org/D11884
author Kyle Lippincott <spectral@google.com>
date Tue, 07 Dec 2021 15:53:55 -0800
parents c51408b92b88
children 5bc3ce09c872
files mercurial/commands.py
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Tue Dec 07 15:48:22 2021 -0800
+++ b/mercurial/commands.py	Tue Dec 07 15:53:55 2021 -0800
@@ -6873,9 +6873,9 @@
 
     cmdutil.check_at_most_one_arg(opts, 'rev', 'change')
     opts = pycompat.byteskwargs(opts)
-    revs = opts.get(b'rev')
-    change = opts.get(b'change')
-    terse = opts.get(b'terse')
+    revs = opts.get(b'rev', [])
+    change = opts.get(b'change', b'')
+    terse = opts.get(b'terse', _NOTTERSE)
     if terse is _NOTTERSE:
         if revs:
             terse = b''