path: root/Documentation/technical/protocol-v2.txt
diff options
authorJonathan Tan <>2019-01-16 19:28:14 (GMT)
committerJunio C Hamano <>2019-01-17 19:25:07 (GMT)
commit0bbc0bc5745ab8b294a5faf8c3b1d939ae8b6d10 (patch)
tree09c885895d97cd7c5d1243035ca281be098123ab /Documentation/technical/protocol-v2.txt
parentfbd76cd450e6675cbd5d48da3c53fa446b776475 (diff)
{fetch,upload}-pack: sideband v2 fetch response
Currently, a response to a fetch request has sideband support only while the packfile is being sent, meaning that the server cannot send notices until the start of the packfile. Extend sideband support in protocol v2 fetch responses to the whole response. upload-pack will advertise it if the uploadpack.allowsidebandall configuration variable is set, and fetch-pack will automatically request it if advertised. If the sideband is to be used throughout the whole response, upload-pack will use it to send errors instead of prefixing a PKT-LINE payload with "ERR ". This will be tested in a subsequent patch. Signed-off-by: Jonathan Tan <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/technical/protocol-v2.txt')
1 files changed, 10 insertions, 0 deletions
diff --git a/Documentation/technical/protocol-v2.txt b/Documentation/technical/protocol-v2.txt
index 09e4e02..39b40c0 100644
--- a/Documentation/technical/protocol-v2.txt
+++ b/Documentation/technical/protocol-v2.txt
@@ -307,6 +307,16 @@ the 'wanted-refs' section in the server's response as explained below.
particular ref, where <ref> is the full name of a ref on the
+If the 'sideband-all' feature is advertised, the following argument can be
+included in the client's request:
+ sideband-all
+ Instruct the server to send the whole response multiplexed, not just
+ the packfile section. All non-flush and non-delim PKT-LINE in the
+ response (not only in the packfile section) will then start with a byte
+ indicating its sideband (1, 2, or 3), and the server may send "0005\2"
+ (a PKT-LINE of sideband 2 with no payload) as a keepalive packet.
The response of `fetch` is broken into a number of sections separated by
delimiter packets (0001), with each section beginning with its section