diff mercurial/wireprotov2server.py @ 39636: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: