Mercurial > public > mercurial-scm > hg-stable
diff mercurial/wireprotov2server.py @ 39652:399ddd3227a4
wireprotov2: add TODOs around extending changesetdata fields
Extensions will inevitably want to extend the set of changeset
data/fields that can be requested. We'll need to implement support
for extending this in the future. Add some TODOs to track that.
Differential Revision: https://phab.mercurial-scm.org/D4487
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 22 Aug 2018 14:51:11 -0700 |
parents | 9dffa99f9158 |
children | c7a7c7e844e5 |
line wrap: on
line diff
--- a/mercurial/wireprotov2server.py Wed Aug 29 17:03:19 2018 -0700 +++ b/mercurial/wireprotov2server.py Wed Aug 22 14:51:11 2018 -0700 @@ -397,6 +397,8 @@ 'framingmediatypes': [FRAMINGTYPE], } + # TODO expose available changesetdata fields. + for command, entry in COMMANDS.items(): caps['commands'][command] = { 'args': entry.args, @@ -474,6 +476,8 @@ def changesetdata(repo, proto, noderange=None, nodes=None, fields=None): fields = fields or set() + # TODO look for unknown fields and abort when they can't be serviced. + if noderange is None and nodes is None: raise error.WireprotoCommandError( 'noderange or nodes must be defined') @@ -563,6 +567,9 @@ revisiondata = cl.revision(node, raw=True) d[b'revisionsize'] = len(revisiondata) + # TODO make it possible for extensions to wrap a function or register + # a handler to service custom fields. + yield d if revisiondata is not None: