diff mercurial/help/internals/wireprotocolv2.txt @ 39815:d3d333ab167a

wireprotov2: teach changesetdata to fetch ancestors until depth For shallow clone, it is useful to specify a starting node and tell the server to send up to N ancestors from that starting point. This enables the server to perform the DAG walk without the client having to discover the base/stop node(s) first. This commit implements support for said queries on the changesetdata command. Differential Revision: https://phab.mercurial-scm.org/D4621
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 17 Sep 2018 11:50:59 -0700
parents d059cb669632
children 33eb670e2834
line wrap: on
line diff
--- a/mercurial/help/internals/wireprotocolv2.txt	Thu Sep 20 12:57:23 2018 -0700
+++ b/mercurial/help/internals/wireprotocolv2.txt	Mon Sep 17 11:50:59 2018 -0700
@@ -130,6 +130,11 @@
 nodes
    (array of bytestrings) Changelog revisions to request explicitly.
 
+nodesdepth
+   (unsigned integer) Number of ancestor revisions of elements in ``nodes``
+   to also fetch. When defined, for each element in ``nodes``, DAG ancestors
+   will be walked until at most N total revisions are emitted.
+
 fields
    (set of bytestring) Which data associated with changelog revisions to
    fetch. The following values are recognized:
@@ -229,9 +234,10 @@
 TODO support different hash "namespaces" for revisions (e.g. sha-1 versus other)
 TODO support emitting obsolescence data
 TODO support filtering based on relevant paths (narrow clone)
-TODO support depth limiting
 TODO support hgtagsfnodes cache / tags data
 TODO support branch heads cache
+TODO consider unify query mechanism. e.g. as an array of "query descriptors"
+rather than a set of top-level arguments that have semantics when combined.
 
 filedata
 --------