git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Brandon Williams <bmwill@google.com>
To: Stefan Beller <sbeller@google.com>
Cc: "git@vger.kernel.org" <git@vger.kernel.org>,
	Jeff King <peff@peff.net>, Junio C Hamano <gitster@pobox.com>,
	Jonathan Nieder <jrnieder@gmail.com>,
	Bryan Turner <bturner@atlassian.com>,
	Jeff Hostetler <git@jeffhostetler.com>,
	Jonathan Tan <jonathantanmy@google.com>
Subject: Re: [PATCH 2/8] protocol: introduce protocol extention mechanisms
Date: Mon, 18 Sep 2017 12:58:40 -0700	[thread overview]
Message-ID: <20170918195840.GG144331@google.com> (raw)
In-Reply-To: <CAGZ79kYQGguodnaiNfT_vWWDQdDdXwZmTi7JnqOmz+Po+FL1+Q@mail.gmail.com>

On 09/18, Stefan Beller wrote:
> >> From a users POV this may be frustrating as I would imagine that
> >> people want to run
> >>
> >>   git config --global protocol.version 2
> >>
> >> to try it out and then realize that some of their hosts do not speak
> >> 2, so they have to actually configure it per repo/remote.
> >
> > The point would be to be able to set this globally, not per-repo.  Even
> > if a repo doesn't speak v2 then it should be able to gracefully degrade
> > to v1 without the user having to do anything.  The reason why there is
> > this escape hatch is if doing the protocol negotiation out of band
> > causing issues with communicating with a server that it can be shut off.
> 
> In the current situation it is easy to assume that if v1 (and not v0)
> is configured, that the users intent is "to try out v1 and fallback
> gracefully to v0".
> 
> But this will change over time in the future!
> 
> Eventually people will have the desire to say:
> "Use version N+1, but never version N", because N has
> performance or security issues; the user might not want
> to bother to try N or even actively want to be affirmed that
> Git will never use version N.
> 
> In this future we need a mechanism, that either contains a
> white list or black list of protocols. To keep it simple (I assume
> there won't be many protocol versions), a single white list will do.
> 
> However transitioning from the currently proposed "try the new
> configured thing and fallback to whatever" to "this is the exact list
> of options that Git will try for you" will be hard, as we may break people
> if we do not unconditionally fall back to v0.
> 
> That is why I propose to start with an explicit white list as then we
> do not have to have a transition plan or otherwise work around the
> issue. Also it doesn't hurt now to use
> 
>     git config --global protocol.version v1,v0
> 
> instead compared to the proposed configuration above.
> (Even better yet, then people could play around with "v1 only"
> and see how it falls apart on old servers)

Except we can't start with an explicit whitelist because we must
fallback to v0 if v1 isn't supported otherwise we would break people.

That is unless we have the semantics of: If not configured v0 will be
used, otherwise only use the configured protocol versions.

-- 
Brandon Williams

  reply	other threads:[~2017-09-18 19:58 UTC|newest]

Thread overview: 161+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-13 21:54 [PATCH 0/8] protocol transition Brandon Williams
2017-09-13 21:54 ` [PATCH 1/8] pkt-line: add packet_write function Brandon Williams
2017-09-13 21:54 ` [PATCH 2/8] protocol: introduce protocol extention mechanisms Brandon Williams
2017-09-13 22:27   ` Stefan Beller
2017-09-18 17:02     ` Brandon Williams
2017-09-18 18:34       ` Stefan Beller
2017-09-18 19:58         ` Brandon Williams [this message]
2017-09-18 20:06           ` Stefan Beller
2017-09-13 21:54 ` [PATCH 3/8] daemon: recognize hidden request arguments Brandon Williams
2017-09-13 22:31   ` Stefan Beller
2017-09-18 16:56     ` Brandon Williams
2017-09-21  0:24   ` Jonathan Tan
2017-09-21  0:31     ` Jonathan Tan
2017-09-21 21:55       ` Brandon Williams
2017-09-13 21:54 ` [PATCH 4/8] upload-pack, receive-pack: introduce protocol version 1 Brandon Williams
2017-09-13 21:54 ` [PATCH 5/8] connect: teach client to recognize v1 server response Brandon Williams
2017-09-13 21:54 ` [PATCH 6/8] connect: tell server that the client understands v1 Brandon Williams
2017-09-13 21:54 ` [PATCH 7/8] http: " Brandon Williams
2017-09-13 21:54 ` [PATCH 8/8] i5700: add interop test for protocol transition Brandon Williams
2017-09-20 18:48 ` [PATCH 1.5/8] connect: die when a capability line comes after a ref Brandon Williams
2017-09-20 19:14   ` Jeff King
2017-09-20 20:06     ` Brandon Williams
2017-09-20 20:48       ` Jonathan Nieder
2017-09-21  3:02       ` Junio C Hamano
2017-09-21 20:45       ` [PATCH] connect: in ref advertisement, shallows are last Jonathan Tan
2017-09-21 23:45         ` [PATCH v2] " Jonathan Tan
2017-09-22  0:00           ` Brandon Williams
2017-09-22  0:08             ` [PATCH v3] " Jonathan Tan
2017-09-22  1:06               ` Junio C Hamano
2017-09-22  1:39                 ` Junio C Hamano
2017-09-22 16:45                   ` Brandon Williams
2017-09-22 20:15                     ` [PATCH v4] " Jonathan Tan
2017-09-22 21:01                       ` Brandon Williams
2017-09-22 22:16                         ` Jonathan Tan
2017-09-24  0:52                       ` Junio C Hamano
2017-09-26 18:21         ` [PATCH v5] " Jonathan Tan
2017-09-26 18:31           ` Brandon Williams
2017-09-26 23:56 ` [PATCH v2 0/9] protocol transition Brandon Williams
2017-09-26 23:56   ` [PATCH v2 1/9] connect: in ref advertisement, shallows are last Brandon Williams
2017-09-26 23:56   ` [PATCH v2 2/9] pkt-line: add packet_write function Brandon Williams
2017-09-26 23:56   ` [PATCH v2 3/9] protocol: introduce protocol extention mechanisms Brandon Williams
2017-09-27  5:17     ` Junio C Hamano
2017-09-27 11:23       ` Junio C Hamano
2017-09-29 21:20         ` Brandon Williams
2017-09-28 21:58       ` Brandon Williams
2017-09-27  6:30     ` Stefan Beller
2017-09-28 21:04       ` Brandon Williams
2017-09-26 23:56   ` [PATCH v2 4/9] daemon: recognize hidden request arguments Brandon Williams
2017-09-27  5:20     ` Junio C Hamano
2017-09-27 21:22       ` Brandon Williams
2017-09-28 16:57         ` Brandon Williams
2017-09-26 23:56   ` [PATCH v2 5/9] upload-pack, receive-pack: introduce protocol version 1 Brandon Williams
2017-09-27  5:23     ` Junio C Hamano
2017-09-27 21:29       ` Brandon Williams
2017-09-26 23:56   ` [PATCH v2 6/9] connect: teach client to recognize v1 server response Brandon Williams
2017-09-27  1:07     ` Junio C Hamano
2017-09-27 17:34       ` Brandon Williams
2017-09-27  5:29     ` Junio C Hamano
2017-09-28 22:08       ` Brandon Williams
2017-09-26 23:56   ` [PATCH v2 7/9] connect: tell server that the client understands v1 Brandon Williams
2017-09-27  6:21     ` Junio C Hamano
2017-09-27  6:29       ` Junio C Hamano
2017-09-29 21:32         ` Brandon Williams
2017-09-28 22:20       ` Brandon Williams
2017-09-26 23:56   ` [PATCH v2 8/9] http: " Brandon Williams
2017-09-27  6:24     ` Junio C Hamano
2017-09-27 21:36       ` Brandon Williams
2017-09-26 23:56   ` [PATCH v2 9/9] i5700: add interop test for protocol transition Brandon Williams
2017-10-03 20:14   ` [PATCH v3 00/10] " Brandon Williams
2017-10-03 20:14     ` [PATCH v3 01/10] connect: in ref advertisement, shallows are last Brandon Williams
2017-10-10 18:14       ` Jonathan Tan
2017-10-03 20:14     ` [PATCH v3 02/10] pkt-line: add packet_write function Brandon Williams
2017-10-10 18:15       ` Jonathan Tan
2017-10-03 20:15     ` [PATCH v3 03/10] protocol: introduce protocol extention mechanisms Brandon Williams
2017-10-06  9:09       ` Simon Ruderich
2017-10-06  9:40         ` Junio C Hamano
2017-10-06 11:11           ` Martin Ågren
2017-10-06 12:09             ` Junio C Hamano
2017-10-06 19:42               ` Martin Ågren
2017-10-06 20:27                 ` Stefan Beller
2017-10-08 14:24                   ` Martin Ågren
2017-10-10 21:00             ` Brandon Williams
2017-10-10 21:17               ` Jonathan Nieder
2017-10-10 21:32                 ` Stefan Beller
2017-10-11  0:39                 ` Junio C Hamano
2017-10-13 22:46                 ` Brandon Williams
2017-10-09  4:05           ` Martin Ågren
2017-10-10 19:51       ` Jonathan Tan
2017-10-03 20:15     ` [PATCH v3 04/10] daemon: recognize hidden request arguments Brandon Williams
2017-10-10 18:24       ` Jonathan Tan
2017-10-13 22:04         ` Brandon Williams
2017-10-03 20:15     ` [PATCH v3 05/10] upload-pack, receive-pack: introduce protocol version 1 Brandon Williams
2017-10-10 18:28       ` Jonathan Tan
2017-10-13 22:18         ` Brandon Williams
2017-10-03 20:15     ` [PATCH v3 06/10] connect: teach client to recognize v1 server response Brandon Williams
2017-10-03 20:15     ` [PATCH v3 07/10] connect: tell server that the client understands v1 Brandon Williams
2017-10-10 18:30       ` Jonathan Tan
2017-10-13 22:56         ` Brandon Williams
2017-10-03 20:15     ` [PATCH v3 08/10] http: " Brandon Williams
2017-10-03 20:15     ` [PATCH v3 09/10] i5700: add interop test for protocol transition Brandon Williams
2017-10-03 20:15     ` [PATCH v3 10/10] ssh: introduce a 'simple' ssh variant Brandon Williams
2017-10-03 21:42       ` Jonathan Nieder
2017-10-16 17:18         ` Brandon Williams
2017-10-23 21:28           ` [PATCH 0/5] Coping with unrecognized ssh wrapper scripts in GIT_SSH Jonathan Nieder
2017-10-23 21:29             ` [PATCH 1/5] connect: split git:// setup into a separate function Jonathan Nieder
2017-10-23 22:16               ` Stefan Beller
2017-10-24  0:09                 ` [WIP PATCH] diff: add option to ignore whitespaces for move detection only Stefan Beller
2017-10-24 18:48                   ` Brandon Williams
2017-10-25  1:25                     ` Junio C Hamano
2017-10-25  1:26                       ` Junio C Hamano
2017-10-25 18:58                         ` Brandon Williams
2017-10-24  1:54                 ` [PATCH 1/5] connect: split git:// setup into a separate function Junio C Hamano
2017-10-24  2:52                   ` Stefan Beller
2017-10-23 21:30             ` [PATCH 2/5] connect: split ssh command line options into " Jonathan Nieder
2017-10-23 21:48               ` Stefan Beller
2017-10-23 21:31             ` [PATCH 3/5] ssh: 'auto' variant to select between 'ssh' and 'simple' Jonathan Nieder
2017-10-23 22:19               ` Jonathan Tan
2017-10-23 22:43                 ` Jonathan Nieder
2017-10-23 22:51                   ` Brandon Williams
2017-10-23 22:57                     ` Jonathan Tan
2017-10-23 23:16                       ` [PATCH v2 0/5] Coping with unrecognized ssh wrapper scripts in GIT_SSH Jonathan Nieder
2017-10-23 23:17                         ` [PATCH 1/5] connect: split git:// setup into a separate function Jonathan Nieder
2017-10-24  1:44                           ` Junio C Hamano
2017-11-15 20:25                             ` Jonathan Nieder
2017-11-17  1:12                               ` Junio C Hamano
2017-10-23 23:17                         ` [PATCH 2/5] connect: split ssh command line options into " Jonathan Nieder
2017-10-24  2:01                           ` Junio C Hamano
2017-10-23 23:18                         ` [PATCH 3/5] ssh: 'auto' variant to select between 'ssh' and 'simple' Jonathan Nieder
2017-10-23 23:27                           ` Brandon Williams
2017-10-23 23:33                             ` Stefan Beller
2017-10-23 23:19                         ` [PATCH 4/5] ssh: 'simple' variant does not support -4/-6 Jonathan Nieder
2017-10-23 23:19                         ` [PATCH 5/5] ssh: 'simple' variant does not support --port Jonathan Nieder
2017-10-24  2:22                         ` [PATCH v2 0/5] Coping with unrecognized ssh wrapper scripts in GIT_SSH Junio C Hamano
2017-10-23 23:12                     ` [PATCH 3/5] ssh: 'auto' variant to select between 'ssh' and 'simple' Jonathan Nieder
2017-10-23 22:33               ` Stefan Beller
2017-10-23 22:54                 ` Jonathan Nieder
2017-10-24  2:16               ` Junio C Hamano
2017-10-25 12:51               ` Johannes Schindelin
2017-10-25 16:18                 ` Stefan Beller
2017-10-25 16:32                   ` Jonathan Nieder
2017-10-30  0:40                     ` Junio C Hamano
2017-10-30 12:37                       ` Johannes Schindelin
2017-10-23 21:32             ` [PATCH 4/5] ssh: 'simple' variant does not support -4/-6 Jonathan Nieder
2017-10-23 21:33             ` [PATCH 5/5] ssh: 'simple' variant does not support --port Jonathan Nieder
2017-10-23 22:37               ` Stefan Beller
2017-10-04  6:20     ` [PATCH v3 00/10] protocol transition Junio C Hamano
2017-10-10 19:39     ` [PATCH] Documentation: document Extra Parameters Jonathan Tan
2017-10-13 22:26       ` Brandon Williams
2017-10-16 17:55     ` [PATCH v4 00/11] protocol transition Brandon Williams
2017-10-16 17:55       ` [PATCH v4 01/11] connect: in ref advertisement, shallows are last Brandon Williams
2017-10-16 17:55       ` [PATCH v4 02/11] pkt-line: add packet_write function Brandon Williams
2017-10-16 17:55       ` [PATCH v4 03/11] protocol: introduce protocol extension mechanisms Brandon Williams
2017-10-16 21:25         ` Kevin Daudt
2017-10-16 17:55       ` [PATCH v4 04/11] daemon: recognize hidden request arguments Brandon Williams
2017-10-16 17:55       ` [PATCH v4 05/11] upload-pack, receive-pack: introduce protocol version 1 Brandon Williams
2017-10-16 17:55       ` [PATCH v4 06/11] connect: teach client to recognize v1 server response Brandon Williams
2017-10-16 17:55       ` [PATCH v4 07/11] connect: tell server that the client understands v1 Brandon Williams
2017-10-16 17:55       ` [PATCH v4 08/11] http: " Brandon Williams
2017-10-16 17:55       ` [PATCH v4 09/11] i5700: add interop test for protocol transition Brandon Williams
2017-10-16 17:55       ` [PATCH v4 10/11] ssh: introduce a 'simple' ssh variant Brandon Williams
2017-10-16 17:55       ` [PATCH v4 11/11] Documentation: document Extra Parameters Brandon Williams

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170918195840.GG144331@google.com \
    --to=bmwill@google.com \
    --cc=bturner@atlassian.com \
    --cc=git@jeffhostetler.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jonathantanmy@google.com \
    --cc=jrnieder@gmail.com \
    --cc=peff@peff.net \
    --cc=sbeller@google.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 NNTP newsgroup(s).