D127: phabricator: add phabupdate command to update status in batch
quark (Jun Wu)
phabricator at mercurial-scm.org
Fri Aug 4 18:13:44 EDT 2017
quark updated this revision to Diff 572.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D127?vs=557&id=572
REVISION DETAIL
https://phab.mercurial-scm.org/D127
AFFECTED FILES
contrib/phabricator.py
CHANGE DETAILS
diff --git a/contrib/phabricator.py b/contrib/phabricator.py
--- a/contrib/phabricator.py
+++ b/contrib/phabricator.py
@@ -9,7 +9,7 @@
This extension provides a ``phabsend`` command which sends a stack of
changesets to Phabricator without amending commit messages, and a ``phabread``
command which prints a stack of revisions in a format suitable
-for :hg:`import`.
+for :hg:`import`, and a ``phabupdate`` command to update statuses in batch.
By default, Phabricator requires ``Test Plan`` which might prevent some
changeset from being sent. The requirement could be disabled by changing
@@ -799,3 +799,32 @@
spec = ':(%s)' % spec
drevs = querydrev(repo, spec)
readpatch(repo, drevs, ui.write)
+
+ at command('phabupdate',
+ [('', 'accept', False, _('accept revisions')),
+ ('', 'reject', False, _('reject revisions')),
+ ('', 'abandon', False, _('abandon revisions')),
+ ('', 'reclaim', False, _('reclaim revisions')),
+ ('m', 'comment', '', _('comment on the last revision')),
+ ], _('DREVSPEC [OPTIONS]'))
+def phabupdate(ui, repo, spec, **opts):
+ """update Differential Revision in batch
+
+ DREVSPEC selects revisions. See :hg:`help phabread` for its usage.
+ """
+ flags = [n for n in 'accept reject abandon reclaim'.split() if opts.get(n)]
+ if len(flags) > 1:
+ raise error.Abort(_('%s cannot be used together') % ', '.join(flags))
+
+ actions = []
+ for f in flags:
+ actions.append({'type': f, 'value': 'true'})
+
+ drevs = querydrev(repo, spec)
+ for i, drev in enumerate(drevs):
+ if i + 1 == len(drevs) and opts.get('comment'):
+ actions.append({'type': 'comment', 'value': opts['comment']})
+ if actions:
+ params = {'objectIdentifier': drev[r'phid'],
+ 'transactions': actions}
+ callconduit(repo, 'differential.revision.edit', params)
To: quark, #hg-reviewers
Cc: krbullock, mercurial-devel
More information about the Mercurial-devel
mailing list