bundle-uri: serve bundle.* keys from config
Implement the "bundle-uri" protocol v2 capability by populating the key=value packet lines from the local Git config. The list of bundles is provided from the keys beginning with "bundle.". In the future, we may want to filter this list to be more specific to the exact known keys that the server intends to share, but for flexibility at the moment we will assume that the config values are well-formed. Signed-off-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
70b9c10373
commit
738dc7d4a5
16
bundle-uri.c
16
bundle-uri.c
@ -581,6 +581,16 @@ cached:
|
||||
return advertise_bundle_uri;
|
||||
}
|
||||
|
||||
static int config_to_packet_line(const char *key, const char *value, void *data)
|
||||
{
|
||||
struct packet_reader *writer = data;
|
||||
|
||||
if (!strncmp(key, "bundle.", 7))
|
||||
packet_write_fmt(writer->fd, "%s=%s", key, value);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int bundle_uri_command(struct repository *r,
|
||||
struct packet_reader *request)
|
||||
{
|
||||
@ -592,7 +602,11 @@ int bundle_uri_command(struct repository *r,
|
||||
if (request->status != PACKET_READ_FLUSH)
|
||||
die(_("bundle-uri: expected flush after arguments"));
|
||||
|
||||
/* TODO: Implement the communication */
|
||||
/*
|
||||
* Read all "bundle.*" config lines to the client as key=value
|
||||
* packet lines.
|
||||
*/
|
||||
git_config(config_to_packet_line, &writer);
|
||||
|
||||
packet_writer_flush(&writer);
|
||||
|
||||
|
Reference in New Issue
Block a user