From: Stefan Beller <sbeller@google.com> To: Jeff King <peff@peff.net> Cc: Josh Triplett <josh@joshtriplett.org>, "git@vger.kernel.org" <git@vger.kernel.org> Subject: Re: upload-pack/ls-remote: showing non-HEAD symbolic refs? Date: Tue, 16 Aug 2016 11:50:11 -0700 [thread overview] Message-ID: <CAGZ79kZ7dzh6AhQRQZsEFdWB4MQxW431yfDuEXao=k_meNE8Nw@mail.gmail.com> (raw) In-Reply-To: <20160816182852.inyqzplee5m3wzt6@sigill.intra.peff.net> On Tue, Aug 16, 2016 at 11:28 AM, Jeff King <peff@peff.net> wrote: > On Tue, Aug 16, 2016 at 10:34:44AM -0700, Josh Triplett wrote: > >> > Sadly you cannot use a capability to fix that, because all of this >> > happens before the client agrees to any capabilities (you can find >> > discussion of a "v2" protocol on the list which solves this, but it's >> > sort of languishing in the design phase). >> >> As a potential 1.1 version, which could work in a backward-compatible >> way with existing servers and no additional round-trip: what if, in the >> smart HTTP protocol, the client advertised client capabilities with an >> additional HTTP header (e.g. "Git-Client-Caps: symrefs othershiny >> featurenames"? git-http-backend could then pass those capabilities to >> git-upload-pack (--client-caps='...'), which could take them into >> account in the initial response? >> >> That wouldn't work as a single-pass approach for SSH, since the client >> can't know if the server's upload-pack supports --client-caps, but it >> would work for the smart HTTP protocol. > > You can dig up the discussion on the list under the name "protocol v2", > but basically yes, that approach has been considered. It's a little > gross just because it leaves other protocols behind http (and it is not > necessarily a good idea to push people into http, because it has some > fundamental drawbacks over the other protocols because of its > half-duplex nature). Some more thoughts on protocol v2 (the good parts to be attributed to jrnieder@gmail.com): * In case of http we can use the http header and know information about the client, i.e. if it may support the following ideas: * Instead of introducing a new protocol we introduce a capability\ "resend-ref-advertisement" and only advertise very few refs (e.g. only the branches, not the pending changes in case of Gerrit) * The client can then ignore the refs advertisement and ask for a resend of the refs with more specification, e.g. "want refs/heads/*", so allowing more than just sha1s in the want line but complex things like branch patterns. > >> > That should Just Work over the existing http protocol without requiring >> > an extra request. >> >> It'd require one extra request for git ls-remote, which normally doesn't >> need the second round-trip, but that still seems reasonable. > > Good point. I don't think there's an easy way around that short of v2 or > v1.1 that you mention above. I agree it's probably reasonable, though. > > -Peff > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-08-16 18:50 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-08-16 16:18 Josh Triplett 2016-08-16 16:31 ` Jeff King 2016-08-16 17:34 ` Josh Triplett 2016-08-16 18:28 ` Jeff King 2016-08-16 18:50 ` Stefan Beller [this message] 2016-08-16 20:34 ` Josh Triplett 2016-08-16 20:31 ` Josh Triplett 2016-08-16 20:54 ` Jeff King 2016-08-16 21:11 ` Josh Triplett 2016-08-16 21:15 ` Jeff King 2016-08-16 22:24 ` Josh Triplett 2016-08-19 13:47 ` Jeff King
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAGZ79kZ7dzh6AhQRQZsEFdWB4MQxW431yfDuEXao=k_meNE8Nw@mail.gmail.com' \ --to=sbeller@google.com \ --cc=git@vger.kernel.org \ --cc=josh@joshtriplett.org \ --cc=peff@peff.net \ --subject='Re: upload-pack/ls-remote: showing non-HEAD symbolic refs?' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).