On Tue, Mar 11, 2014 at 01:25:23PM -0700, Junio C Hamano wrote: > > Yeah, good idea. I might be misremembering some complications, but we > > can probably do it with: > > > > 1. Teach the client to send an "advertise-symrefs" flag before the ref > > advertisement. > > > > 2. Teach the server to include symrefs in the ref advertisement; we > > can invent a new syntax because we know the client has asked for > > it. > > I was thinking more about the underlying protocol, not advertisement > in particular, and I think we came to the same conclusion. > > The capability advertisement deserves to have its own separate > packet message type, when both sides say that they understand it, so > that we do not have to be limited by the pkt-line length limit. We > could do one message per capability, and at the same time can lift > the traditional "capability hidden after the NUL is purged every > time, so we need to repeat them if we want to later change it, > because that is how older clients and servers use that information" > insanity, for example. So this may be entering the "more radical changes" realm I mentioned earlier. If the client is limited to setting a few flags, then something like http can get away with: GET foo.git/info/refs?service=git-upload-pack&advertise-symrefs&refspec=refs/heads/* And it does not need to worry about upload-pack2 at all. Either the server recognizes and acts on them, or it ignores them. But given that we do not have such a magic out-of-band method for passing values over ssh and git, maybe it is not worth worrying about. Http can move to upload-pack2 along with the rest. One thing that _is_ worth considering for http is how the protocol starts. We do not want to introduce an extra http round-trip to the protocol if we can help it. If the initial GET becomes a POST, then it could pass along the pkt-line of client capabilities with the initial request, and the server would respond with the ref advertisement as usual. -Peff -- 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