Patchwork D7045: phabricator: add the maketext function

login
register
mail settings
Submitter phabricator
Date Oct. 11, 2019, 5:54 p.m.
Message ID <578fd4d8566d72a4a37bfa5897b60d38@localhost.localdomain>
Download mbox | patch
Permalink /patch/42228/
State Not Applicable
Headers show

Comments

phabricator - Oct. 11, 2019, 5:54 p.m.
Kwan added a comment.
Kwan updated this revision to Diff 17076.


  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/D7045?vs=17051&id=17076

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7045/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7045

AFFECTED FILES
  hgext/phabricator.py

CHANGE DETAILS




To: Kwan, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/hgext/phabricator.py b/hgext/phabricator.py
--- a/hgext/phabricator.py
+++ b/hgext/phabricator.py
@@ -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()