From patchwork Fri Oct 11 17:55:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D7053: phabricator: switch to the creatediff endpoint From: phabricator X-Patchwork-Id: 42235 Message-Id: <547bdf0d0d2ba25c47c2be41fbaa3239@localhost.localdomain> To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Fri, 11 Oct 2019 17:55:33 +0000 Kwan added a comment. Kwan updated this revision to Diff 17083. Fix some test-check-code issues, and one test-check-pyflakes unused local. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7053?vs=17059&id=17083 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7053/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7053 AFFECTED FILES hgext/phabricator.py CHANGE DETAILS To: Kwan, #hg-reviewers Cc: mercurial-devel diff --git a/hgext/phabricator.py b/hgext/phabricator.py --- a/hgext/phabricator.py +++ b/hgext/phabricator.py @@ -798,11 +798,20 @@ """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', attr.asdict(pdiff)) if not diff: raise error.Abort(_(b'cannot create diff for %s') % ctx) return diff @@ -810,8 +819,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( { @@ -826,7 +837,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( {