git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Sverre Rabbelier <srabbelier@gmail.com>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Ilari Liusvaara <ilari.liusvaara@elisanet.fi>,
	Junio C Hamano <gitster@pobox.com>,
	git@vger.kernel.org
Subject: Re: [RFC PATCH 0/8] Git remote helpers to implement smart transports.
Date: Wed, 02 Dec 2009 10:41:40 -0800	[thread overview]
Message-ID: <7vk4x5fcbf.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <fabb9a1e0912021006x2905578bo16dbcaedc0d97bc6@mail.gmail.com> (Sverre Rabbelier's message of "Wed\, 2 Dec 2009 19\:06\:34 +0100")

Sverre Rabbelier <srabbelier@gmail.com> writes:

>> Of course, I never understood why the backend should know the
>> implementation detail that it is based on cURL, so it would be even more
>> modular (at least by my definition) if there was no hard-coded mapping.
>
> Agreed.

I don't get this point at all.

Backend is _very_ aware of how it is implemented itself.  Naming one
implementation git-remote-http is to declare that "I am the one and only
implementation of http handler" and forces another implementation of http
handler, perhaps based on different toolkit than libcurl, to forever be a
second class citizen that need to use name other than 'http'.

The "mapping" you two are calling "hard-coded" may be "hard-coded" but is
a better kind of hard-coding than hard-coding "http" to "this particular
implementation" implicitly like you two seem to be advocating.  Think of
it as having one extra layer of indirection.

When the second implementation of http handler proves to be better than
the current one, we can flip the mapping, and anybody who were using
"http://" to access some repository will automatically updated to use the
new backend instead of the old one.  With your scheme, you probably could
change the name of the old "http" backend to "http-deprecated" and the new
one from "second-class-citizen-http" to "http" to achieve a similar
effect, but I do not think it is as nice as having one extra level of
indirection.

> However, I am not convinced that we should do any magic to map
> "foo://" to git-remote-foo. On the other hand, I do think it makes
> sense to have something modular that allows "git-remote-http" to be
> implemented as a separate package that can be installed.

As I said, I do think modular is good, but I think what Dscho is
advocating does not have much to achieve that goal.

  reply	other threads:[~2009-12-02 18:42 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-01 13:57 [RFC PATCH 0/8] Git remote helpers to implement smart transports Ilari Liusvaara
2009-12-01 13:57 ` [RFC PATCH 1/8] Pass unknown protocols to external protocol handlers Ilari Liusvaara
2009-12-01 13:57 ` [RFC PATCH 2/8] Refactor git transport options parsing Ilari Liusvaara
2009-12-01 13:57 ` [RFC PATCH 3/8] Support taking over transports Ilari Liusvaara
2009-12-01 13:57 ` [RFC PATCH 4/8] Support remote helpers implementing smart transports Ilari Liusvaara
2009-12-01 19:22   ` Shawn O. Pearce
2009-12-02  5:55     ` Ilari Liusvaara
2009-12-02 17:04       ` Shawn O. Pearce
2009-12-02 20:10         ` Ilari Liusvaara
2009-12-03 19:42           ` Shawn O. Pearce
2009-12-02 17:12       ` Shawn O. Pearce
2009-12-01 13:57 ` [RFC PATCH 5/8] Support remote archive from external protocol helpers Ilari Liusvaara
2009-12-01 13:57 ` [RFC PATCH 6/8] Remove special casing of http, https and ftp Ilari Liusvaara
2009-12-01 18:24   ` Shawn O. Pearce
2009-12-01 19:39     ` Ilari Liusvaara
2009-12-01 19:15   ` Daniel Barkalow
2009-12-02  5:52     ` Ilari Liusvaara
2009-12-01 13:57 ` [RFC PATCH 7/8] Add remote helper debug mode Ilari Liusvaara
2009-12-01 13:57 ` [RFC PATCH 8/8] Support mandatory capabilities Ilari Liusvaara
2009-12-01 16:12 ` [RFC PATCH 0/8] Git remote helpers to implement smart transports Sverre Rabbelier
2009-12-01 16:52   ` Shawn O. Pearce
2009-12-01 17:19     ` Ilari Liusvaara
2009-12-01 19:30       ` Shawn O. Pearce
2009-12-01 20:42         ` Junio C Hamano
2009-12-01 23:20           ` Shawn O. Pearce
2009-12-02  5:56           ` Ilari Liusvaara
2009-12-02  6:35             ` Junio C Hamano
2009-12-02 16:04               ` Ilari Liusvaara
2009-12-02 17:26                 ` Junio C Hamano
2009-12-02 17:39                 ` Johannes Schindelin
2009-12-02 18:06                   ` Sverre Rabbelier
2009-12-02 18:41                     ` Junio C Hamano [this message]
2009-12-02 18:50                       ` Sverre Rabbelier
2009-12-02 18:52                         ` Junio C Hamano
2009-12-02 18:55                           ` Sverre Rabbelier
2009-12-02 18:58                           ` Junio C Hamano
2009-12-02 19:39                             ` Jeff King
2009-12-02 19:25                       ` Ilari Liusvaara
2009-12-02 18:07                   ` Junio C Hamano
2009-12-02 18:47                     ` Ilari Liusvaara
2009-12-02 19:52                   ` Ilari Liusvaara
2009-12-02  5:50         ` Ilari Liusvaara

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=7vk4x5fcbf.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=ilari.liusvaara@elisanet.fi \
    --cc=srabbelier@gmail.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).