Mercurial > hg
diff hgext/phabricator.py @ 43185:75e7628b488f
phabricator: add the phabdiff data structure
This holds all the data about a commit, and is passed to the
differential.creatediff API.
Differential Revision: https://phab.mercurial-scm.org/D7044
author | Ian Moody <moz-ian@perix.co.uk> |
---|---|
date | Sun, 06 Oct 2019 14:53:03 +0100 |
parents | 99ee4afd352f |
children | f742fabad507 |
line wrap: on
line diff
--- a/hgext/phabricator.py Sun Oct 06 14:08:03 2019 +0100 +++ b/hgext/phabricator.py Sun Oct 06 14:53:03 2019 +0100 @@ -522,6 +522,32 @@ self.delLines += hunk.delLines +@attr.s +class phabdiff(object): + """Represents a Differential diff, owns Differential changes. Corresponds + to a commit. + """ + + # Doesn't seem to be any reason to send this (output of uname -n) + sourceMachine = attr.ib(default=b'') # camelcase-required + sourcePath = attr.ib(default=b'/') # camelcase-required + sourceControlBaseRevision = attr.ib(default=b'0' * 40) # camelcase-required + sourceControlPath = attr.ib(default=b'/') # camelcase-required + sourceControlSystem = attr.ib(default=b'hg') # camelcase-required + branch = attr.ib(default=b'default') + bookmark = attr.ib(default=None) + creationMethod = attr.ib(default=b'phabsend') # camelcase-required + lintStatus = attr.ib(default=b'none') # camelcase-required + unitStatus = attr.ib(default=b'none') # camelcase-required + changes = attr.ib(default=attr.Factory(dict)) + repositoryPHID = attr.ib(default=None) # camelcase-required + + def addchange(self, change): + if not isinstance(change, phabchange): + raise error.Abort(b'phabdiff.addchange only takes phabchanges') + self.changes[change.currentPath] = change + + def creatediff(ctx): """create a Differential Diff""" repo = ctx.repo()