[PATCH 20/25] serve: understand but do not advertise 'features' capability
- From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Feb 23, 2022, 18:30 UTC
- Message-ID
- <5b983cc3c104fe6ed64608320387bf82fefcdbb4.1645641063.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1160.git.1645641063.gitgitgadget@gmail.com>
From: Derrick Stolee <derrickstolee@github.com>
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@github.com> --- serve.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/serve.c b/serve.c index b3fe9b5126a..a1c853dda1f 100644 --- a/serve.c +++ b/serve.c @@ -18,6 +18,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) { @@ -136,6 +142,11 @@ static struct protocol_capability capabilities[] = { .advertise = always_advertise, .command = cap_object_info, }, + { + .name = "features", + .advertise = never_advertise, + .command = cap_features, + }, }; void protocol_v2_advertise_capabilities(void)
-- gitgitgadget