phabricator: add a helper function to convert DREVSPECs to a DREV dict list
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 05 Mar 2020 11:00:00 -0500
changeset 44578 90adda73676a
parent 44577 f8427841c8fc
child 44579 a7f8c657a3f0
phabricator: add a helper function to convert DREVSPECs to a DREV dict list Prep work for allowing multiple DREVSPECs to various commands, and properly validating the input. Differential Revision: https://phab.mercurial-scm.org/D8232
hgext/phabricator.py
--- a/hgext/phabricator.py	Fri Mar 20 17:18:14 2020 +0900
+++ b/hgext/phabricator.py	Thu Mar 05 11:00:00 2020 -0500
@@ -1632,6 +1632,27 @@
     return meta
 
 
+def _getdrevs(ui, stack, *specs):
+    """convert user supplied DREVSPECs into "Differential Revision" dicts
+
+    See ``hg help phabread`` for how to specify each DREVSPEC.
+    """
+    if len(*specs) > 0:
+
+        def _formatspec(s):
+            if stack:
+                s = b':(%s)' % s
+            return b'(%s)' % s
+
+        spec = b'+'.join(pycompat.maplist(_formatspec, *specs))
+
+        drevs = querydrev(ui, spec)
+        if drevs:
+            return drevs
+
+    raise error.Abort(_(b"empty DREVSPEC set"))
+
+
 def readpatch(ui, drevs, write):
     """generate plain-text patch readable by 'hg import'