From: Derrick Stolee <derrickstolee@xxxxxxxxxx> The previous change implemented cap_features() to return a set of 'key=value' pairs when this capability is run. Add the capability to our list of understood capabilities. This change does not advertise the capability. When deploying a new capability to a distributed fleet of Git servers, it is important to delay advertising the capability until all nodes understand it. A later change will advertise it when appropriate, but as a separate change to simplify this transition. Signed-off-by: Derrick Stolee <derrickstolee@xxxxxxxxxx> --- serve.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/serve.c b/serve.c index f3e0203d2c6..3368d16efda 100644 --- a/serve.c +++ b/serve.c @@ -19,6 +19,12 @@ static int always_advertise(struct repository *r, return 1; } +static int never_advertise(struct repository *r, + struct strbuf *value) +{ + return 0; +} + static int agent_advertise(struct repository *r, struct strbuf *value) { @@ -113,6 +119,11 @@ static struct protocol_capability capabilities[] = { .advertise = ls_refs_advertise, .command = ls_refs, }, + { + .name = "features", + .advertise = never_advertise, + .command = cap_features, + }, { .name = "fetch", .advertise = upload_pack_advertise, -- 2.36.0.rc2.902.g60576bbc845