Mercurial > hg
changeset 43262:af067d29b19e
phabricator: switch to the creatediff endpoint
This lets the extension submit binary files, as well as set branch info so that
it is exposed in the Phabricator interface.
Differential Revision: https://phab.mercurial-scm.org/D7053
author | Ian Moody <moz-ian@perix.co.uk> |
---|---|
date | Sun, 06 Oct 2019 18:23:06 +0100 |
parents | f5aa4a53acd1 |
children | 06a33a501aa2 |
files | hgext/phabricator.py |
diffstat | 1 files changed, 21 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/phabricator.py Sun Oct 06 18:21:01 2019 +0100 +++ b/hgext/phabricator.py Sun Oct 06 18:23:06 2019 +0100 @@ -800,11 +800,24 @@ """create a Differential Diff""" repo = ctx.repo() repophid = getrepophid(repo) - # Create a "Differential Diff" via "differential.createrawdiff" API - params = {b'diff': getdiff(ctx, mdiff.diffopts(git=True, context=32767))} + # Create a "Differential Diff" via "differential.creatediff" API + pdiff = phabdiff( + sourceControlBaseRevision=b'%s' % ctx.p1().hex(), + branch=b'%s' % ctx.branch(), + ) + modified, added, removed, _d, _u, _i, _c = ctx.p1().status(ctx) + # addadded will remove moved files from removed, so addremoved won't get + # them + addadded(pdiff, ctx, added, removed) + addmodified(pdiff, ctx, modified) + addremoved(pdiff, ctx, removed) if repophid: - params[b'repositoryPHID'] = repophid - diff = callconduit(repo.ui, b'differential.createrawdiff', params) + pdiff.repositoryPHID = repophid + diff = callconduit( + repo.ui, + b'differential.creatediff', + pycompat.byteskwargs(attr.asdict(pdiff)), + ) if not diff: raise error.Abort(_(b'cannot create diff for %s') % ctx) return diff @@ -812,8 +825,10 @@ def writediffproperties(ctx, diff): """write metadata to diff so patches could be applied losslessly""" + # creatediff returns with a diffid but query returns with an id + diffid = diff.get(b'diffid', diff.get(b'id')) params = { - b'diff_id': diff[b'id'], + b'diff_id': diffid, b'name': b'hg:meta', b'data': templatefilters.json( { @@ -828,7 +843,7 @@ callconduit(ctx.repo().ui, b'differential.setdiffproperty', params) params = { - b'diff_id': diff[b'id'], + b'diff_id': diffid, b'name': b'local:commits', b'data': templatefilters.json( {