1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-14 16:16:13 +02:00

serve: introduce the server-option capability

Introduce the "server-option" capability to protocol version 2.  This
enables future clients the ability to send server specific options in
command requests when using protocol version 2.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Brandon Williams 2018-04-23 15:46:22 -07:00 committed by Junio C Hamano
parent bbc39d4020
commit ecc3e5342d
3 changed files with 32 additions and 0 deletions

View File

@ -393,3 +393,13 @@ header.
1 - pack data
2 - progress messages
3 - fatal error message just before stream aborts
server-option
~~~~~~~~~~~~~~~
If advertised, indicates that any number of server specific options can be
included in a request. This is done by sending each option as a
"server-option=<option>" capability line in the capability-list section of
a request.
The provided options must not contain a NUL or LF character.

View File

@ -56,6 +56,7 @@ static struct protocol_capability capabilities[] = {
{ "agent", agent_advertise, NULL },
{ "ls-refs", always_advertise, ls_refs },
{ "fetch", upload_pack_advertise, upload_pack_v2 },
{ "server-option", always_advertise, NULL },
};
static void advertise_capabilities(void)

View File

@ -10,6 +10,7 @@ test_expect_success 'test capability advertisement' '
agent=git/$(git version | cut -d" " -f3)
ls-refs
fetch=shallow
server-option
0000
EOF
@ -173,4 +174,24 @@ test_expect_success 'symrefs parameter' '
test_cmp actual expect
'
test_expect_success 'sending server-options' '
test-pkt-line pack >in <<-EOF &&
command=ls-refs
server-option=hello
server-option=world
0001
ref-prefix HEAD
0000
EOF
cat >expect <<-EOF &&
$(git rev-parse HEAD) HEAD
0000
EOF
git serve --stateless-rpc <in >out &&
test-pkt-line unpack <out >actual &&
test_cmp actual expect
'
test_done