From: Calvin Wan Date: Thu, 11 Nov 2021 22:00:48 +0000 (+0000) Subject: protocol-v2.txt: align delim-pkt spec with usage X-Git-Tag: v2.35.0-rc0~125^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=74db416c9c3bf829b0d0641e74c252bf53da0158;p=thirdparty%2Fgit.git protocol-v2.txt: align delim-pkt spec with usage The current protocol EBNF allows command-request to end with the capability list, if no command specific arguments follow, but the protocol requires that after the capability list, there must be a delim-pkt regardless of the number of command specific arguments. Fixed the EBNF to match. Both JGit and libgit2's implementation has the delim-pkt as mandatory. JGit's code is not publicly linkable, but libgit2 is linked below[1]. As for currently implemented commands on v2 (ls-ref and fetch), the delim packet is already being passed through [1]: https://github.com/libgit2/libgit2/blob/main/src/transports/git.c Reported-by: Ivan Frade Signed-off-by: Calvin Wan Signed-off-by: Junio C Hamano --- diff --git a/Documentation/technical/protocol-v2.txt b/Documentation/technical/protocol-v2.txt index 1040d85319..a3ef7507b7 100644 --- a/Documentation/technical/protocol-v2.txt +++ b/Documentation/technical/protocol-v2.txt @@ -116,11 +116,11 @@ command can be requested at a time. empty-request = flush-pkt command-request = command capability-list - [command-args] + delim-pkt + command-args flush-pkt command = PKT-LINE("command=" key LF) - command-args = delim-pkt - *command-specific-arg + command-args = *command-specific-arg command-specific-args are packet line framed arguments defined by each individual command.