D7049: phabricator: add addremoved and addmodified functions
Kwan (Ian Moody)
phabricator at mercurial-scm.org
Thu Oct 10 21:52:45 UTC 2019
Kwan created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
These are relatively simple so add them together. As the name indicates, these
add phabchange objects for removed and modified files to the phabdiff.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D7049
AFFECTED FILES
hgext/phabricator.py
CHANGE DETAILS
diff --git a/hgext/phabricator.py b/hgext/phabricator.py
--- a/hgext/phabricator.py
+++ b/hgext/phabricator.py
@@ -684,6 +684,44 @@
pchange.fileType = DiffFileType.IMAGE
+# Copied from mercurial/patch.py
+gitmode = {b'l': b'120000', b'x': b'100755', b'': b'100644'}
+
+
+def addremoved(pdiff, ctx, removed):
+ """add removed files to the phabdiff. Shouldn't include moves"""
+ for fname in removed:
+ pchange = phabchange(
+ currentPath=fname, oldPath=fname, type=DiffChangeType.DELETE
+ )
+ pchange.addoldmode(gitmode[ctx.p1()[fname].flags()])
+ fctx = ctx.p1()[fname]
+ if not fctx.isbinary():
+ maketext(pchange, ctx, fname)
+
+ pdiff.addchange(pchange)
+
+
+def addmodified(pdiff, ctx, modified):
+ """add modified files to the phabdiff"""
+ for fname in modified:
+ fctx = ctx[fname]
+ pchange = phabchange(currentPath=fname, oldPath=fname)
+ filemode = gitmode[ctx[fname].flags()]
+ originalmode = gitmode[ctx.p1()[fname].flags()]
+ if filemode != originalmode:
+ pchange.addoldmode(originalmode)
+ pchange.addnewmode(filemode)
+
+ if fctx.isbinary():
+ makebinary(pchange, fctx)
+ addoldbinary(pchange, fctx, fname)
+ else:
+ maketext(pchange, ctx, fname)
+
+ pdiff.addchange(pchange)
+
+
def creatediff(ctx):
"""create a Differential Diff"""
repo = ctx.repo()
To: Kwan, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list