From: Junio C Hamano Date: Mon, 01 Dec 2008 14:03:41 GMT Subject: Re: [PATCH 4/5] upload-pack: implement protocol extension "symbolic-ref" Message-ID: <7vy6z0q9fm.fsf@gitster.siamese.dyndns.org> In-Reply-To: <20081130180214.GA10375@coredump.intra.peff.net> Jeff King writes: > On Sun, Nov 30, 2008 at 01:57:29AM -0800, Junio C Hamano wrote: > ... >> This is unfortunate because it forces an extra round trip (receiving end >> sends a "please tell me symbolic-ref" packet, and then upload side sends >> "here are the requested information" packet), but it has to be implemented >> this way because (1) ls-remote may need to ask for this information, in >> which case there is no "want" to be sent; and (2) the transport API >> insists that transport_get_remote_refs() returns the final list, and does >> not allow augmenting what was initially obtained from the call to it by >> later calls to transport_fetch_refs() easily. > > Hrm. For (1), could we allow either interaction method? IOW, allow > requesting a symref on the first want line, _or_ by separate "symbolic > ref" packet? That would allow clients who are using "want" to > piggy-back the symref request as an optimization, but not restrict those > that just want to ask for it? I think I found another hole in the protocol that we can use to carry the "which branch does HEAD points at" information in a backward compatible way, and it would be a much less intrusive although more sneaky way. And it would not have to suffer from the above issues at all. A patchset follows shortly...