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
--- 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'