From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Sverre Rabbelier <srabbelier@gmail.com>,
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, 2 Dec 2009 21:52:33 +0200 [thread overview]
Message-ID: <20091202195233.GA11301@Knoppix> (raw)
In-Reply-To: <alpine.DEB.1.00.0912021832480.4985@pacific.mpi-cbg.de>
On Wed, Dec 02, 2009 at 06:39:19PM +0100, Johannes Schindelin wrote:
>
> This is definitely a good direction, and it would be even better if the
> absence of the remote helper was also handled gracefully. Just think
> about a (as of now fictious) git-remote-http.rpm relying on git-core.rpm
> and libcurl.rpm. If you do not want to access http:// URLs, you can
> install just git-core. Once you encounter an http:// URL you need to
> access, you install git-remote-http. Keeping git-core. (I like to call
> this setup "modular".)
There are some rather unfortunate details relating to this.
Main git executable currently has no good way to discover what went wrong
with remote helper execution that fails before reaching capabilities
exchange.
It would be ideal if executions failing due to ENOENT would be reported
as remote helper not existing, other exec errors reported as failed execution,
fatal signals as remote helper crashing and other exits rely on remote helper
reporting the problem.
Unfortunately, this can't be done without breaking remote helper interface,
either by requiring initial response from helper or requiring helpers not
to explicitly fail due to bad parameters before reaching capabilities exchange,
since one can't know if execution was successuful without seeing at least
one incoming line.
IIRC, current versions print some rather funky error if you try to use
nonexistent helper: 'remote-foo is not git command' or some such.
> 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
> (Sverre -- Cc'ed -- seemed to like URLs of the form "svn::http://..." and
> "cvs::pserver..." to trigger looking for a remote helper explicitely). I
> find the compiled-in mapping rather limiting.
That syntax is rather nice for handling foregin VCSes that may have URL forms
that overlap with native ones. But it sure isn't nice for those remote helpers
that implement git native transports (remote-curl is already a precedent on
doing that).
The API is already general enough to do both: Git native transports (currently
dumb only without lots of effort, which this patchset is about) and foregin
VCS bridges.
-Ilari
next prev parent reply other threads:[~2009-12-02 19:52 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
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 [this message]
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=20091202195233.GA11301@Knoppix \
--to=ilari.liusvaara@elisanet.fi \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--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).