git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/8] Git remote helpers to implement smart transports.
@ 2009-12-01 13:57 Ilari Liusvaara
  2009-12-01 13:57 ` [RFC PATCH 1/8] Pass unknown protocols to external protocol handlers Ilari Liusvaara
                   ` (8 more replies)
  0 siblings, 9 replies; 42+ messages in thread
From: Ilari Liusvaara @ 2009-12-01 13:57 UTC (permalink / raw)
  To: git

This series implements extensions to remote helpers for carrying smary
transports. It is against next, because master doesn't contain necressary
patches (the allow specifying remote helper in url one).

First patch reworks URL handling so that unknown protocols are passed
to remote helpers. This allows having remote helpers implement git
transports without duplicating the protocol part.

Second patch refactors git transport option parsing to split smart
transport option to own structure and keep this structure up to date
with encountered options. This is needed if transport turns out to
be smart transport.

Third patch adds capabilty to have git smart transport code take
over connection, replacing "layer 7" with git smart transport protocols.

Fourth patch actually adds the extensions to external transport code to
allow helpers signal that transport should be taken over (become smart
transport).

Fifth patch extends 'git archive' to allow snapshotting off any transport
that uses git smart transport code, not just file://, git:// and ssh://

Sixth patch removes special casing of http, https and ftp. And while
at it, adds ftps, since CURL supports it.

Seventh patch adds debug mode for remote helpers. Might be useful for
debugging deadlocks by showing command traffic between git executable
and remote helper.

Eighth patch adds support for remote helper to signal that it requires
some capability and have git complain if it doesn't know it.


Misc remarks:

Underlying network link is assumed to be full-duplex since most of the
time if the underlying link isn't HTTP, it will be full-duplex (most of the
time even TCP).

Simplest deadlock-free buffering is just to read incoming pipe from git
when there's no data to send to remote end. This gives adequate performance
in all cases except when sending large initial ref adverts (and those are 
ended by flush anyway, so those can be safely buffered). So no extensions
to add missing flushes are needed.

Ilari Liusvaara (8):
  Pass unknown protocols to external protocol handlers
  Refactor git transport options parsing
  Support taking over transports
  Support remote helpers implementing smart transports
  Support remote archive from external protocol helpers
  Remove special casing of http, https and ftp
  Add remote helper debug mode
  Support mandatory capabilities

 .gitignore                           |    5 +-
 Documentation/git-remote-helpers.txt |   35 ++++-
 Makefile                             |   16 ++-
 builtin-archive.c                    |   17 ++-
 transport-helper.c                   |  270 ++++++++++++++++++++++++++++-----
 transport.c                          |  258 ++++++++++++++++++++++++++------
 transport.h                          |   32 ++++
 7 files changed, 533 insertions(+), 100 deletions(-)

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2009-12-03 19:42 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2009-12-02  5:50         ` Ilari Liusvaara

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).