On Mon, Mar 02, 2015 at 04:21:36PM +0700, Duy Nguyen wrote: > On Sun, Mar 01, 2015 at 07:47:40PM -0800, Junio C Hamano wrote: > > It seems, however, that our current thinking is that it is OK to do > > the "allow new v1 clients to notice the availabilty of v2 servers, > > so that they can talk v2 the next time" thing, so my preference is > > to throw this "client first and let server notice" into "maybe > > doable but not our first choice" bin, at least for now. > > OK let's see if first choice like this could work. Very draft but it > should give some idea how to make a prototype to test it out. Note > that the server still speaks first in this proposal. And ref discovery phase could be modified by new capabilities. For example, -- 8< -- diff --git a/Documentation/technical/protocol-capabilities.txt b/Documentation/technical/protocol-capabilities.txt index 56c11b4..56a8c2e 100644 --- a/Documentation/technical/protocol-capabilities.txt +++ b/Documentation/technical/protocol-capabilities.txt @@ -304,3 +304,36 @@ language code. The default language code is unspecified, even though it's usually English in ASCII encoding. + +compressed-refs +--------------- + +This is applicable to upload-pack-2 and receive-pack-2 only. The +client expects ref list in reference discovery phase to be sent in +compressed format: + + - Each PKT-LINE may contain more than one ref + - SHA-1 is in binary encoding (i.e. 20 bytes instead of + 40 bytes as hex string) + - ref name is prefix compressed, see index-format.txt version 4. + - Ref list ends with flush-pkt + +glob-refs +--------- + +This is applicable to upload-pack-2 and receive-pack-2 only. In +reference discovery phase, a new mode "glob" is supported. Where the +arguments are wildmatch patterns. Negative patterns begin with '!'. +Only refs matching requested patterns are sent to the client. + +stateful-refs +------------- + +This is applicable to upload-pack-2 and receive-pack-2 only. In +reference discovery phase, a new mode "stateful" is supported. Where +the first argument is a string representing the ref list that was sent +by the same server last time. The remaining arguments are glob. + +The first ref line that the server sends should carry a new state +string after ref name. The server may send only updated refs it if +understands the state string sent by the client. Still under discussion. -- 8< -- -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html