Mercurial > hg
diff hgext/phabricator.py @ 43186:f742fabad507
phabricator: add the maketext function
This add the diff data for a text file to a phabchange.
Differential Revision: https://phab.mercurial-scm.org/D7045
author | Ian Moody <moz-ian@perix.co.uk> |
---|---|
date | Sun, 06 Oct 2019 14:54:46 +0100 |
parents | 75e7628b488f |
children | 453079605242 |
line wrap: on
line diff
--- a/hgext/phabricator.py Sun Oct 06 14:53:03 2019 +0100 +++ b/hgext/phabricator.py Sun Oct 06 14:54:46 2019 +0100 @@ -58,6 +58,7 @@ error, exthelper, httpconnection as httpconnectionmod, + match, mdiff, obsutil, parser, @@ -548,6 +549,36 @@ self.changes[change.currentPath] = change +def maketext(pchange, ctx, fname): + """populate the phabchange for a text file""" + repo = ctx.repo() + fmatcher = match.exact([fname]) + diffopts = mdiff.diffopts(git=True, context=32767) + _pfctx, _fctx, header, fhunks = next( + patch.diffhunks(repo, ctx.p1(), ctx, fmatcher, opts=diffopts) + ) + + for fhunk in fhunks: + (oldOffset, oldLength, newOffset, newLength), lines = fhunk + corpus = b''.join(lines[1:]) + shunk = list(header) + shunk.extend(lines) + _mf, _mt, addLines, delLines, _hb = patch.diffstatsum( + patch.diffstatdata(util.iterlines(shunk)) + ) + pchange.addhunk( + phabhunk( + oldOffset, + oldLength, + newOffset, + newLength, + corpus, + addLines, + delLines, + ) + ) + + def creatediff(ctx): """create a Differential Diff""" repo = ctx.repo()