On Wed, Jan 25, 2017 at 2:02 PM, Jonathan Tan <jonathantanmy@xxxxxxxxxx> wrote: > Hello everyone - this is a proposal for a protocol change to allow the > fetch-pack/upload-pack to converse in terms of ref names (globs > allowed), and also an implementation of the server (upload-pack) and > fetch-from-HTTP client (fetch-pack invoked through fetch). > > Negotiation currently happens by upload-pack initially sending a list of > refs with names and SHA-1 hashes, and then several request/response > pairs in which the request from fetch-pack consists of SHA-1 hashes > (selected from the initial list). Allowing the request to consist of > names instead of SHA-1 hashes increases tolerance to refs changing > (due to time, and due to having load-balanced servers without strong > consistency), and is a step towards eliminating the need for the server > to send the list of refs first (possibly improving performance). > > The protocol is extended by allowing fetch-pack to send > "want-ref <name>", where <name> is a full name (refs/...) [1], possibly > including glob characters. Upload-pack will inform the client of the > refs actually matched by sending "wanted-ref <SHA-1> <name>" before > sending the last ACK or NAK. I have reviewed the patches and think they are a good idea, cc'ing Jeff who you linked to and who had some ideas about the protocol as well. Stefan