git-remote-ext
This remote helper invokes external command and passes raw smart transport stream through it. This is useful for instance for invoking ssh with one-off odd options, connecting to git services in unix domain sockets, in abstract namespace, using TLS or other secure protocols, etc... Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
3a9ed4bdee
commit
7f3ecebfcd
125
Documentation/git-remote-ext.txt
Normal file
125
Documentation/git-remote-ext.txt
Normal file
@ -0,0 +1,125 @@
|
||||
git-remote-ext(1)
|
||||
=================
|
||||
|
||||
NAME
|
||||
----
|
||||
git-remote-ext - Bridge smart transport to external command.
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
git remote add nick "ext::<command>[ <arguments>...]"
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
This remote helper uses the specified 'program' to connect
|
||||
to a remote git server.
|
||||
|
||||
Data written to stdin of this specified 'program' is assumed
|
||||
to be sent to git:// server, git-upload-pack, git-receive-pack
|
||||
or git-upload-archive (depending on situation), and data read
|
||||
from stdout of this program is assumed to be received from
|
||||
the same service.
|
||||
|
||||
Command and arguments are separated by unescaped space.
|
||||
|
||||
The following sequences have a special meaning:
|
||||
|
||||
'% '::
|
||||
Literal space in command or argument.
|
||||
|
||||
'%%'::
|
||||
Literal percent sign.
|
||||
|
||||
'%s'::
|
||||
Replaced with name (receive-pack, upload-pack, or
|
||||
upload-archive) of the service git wants to invoke.
|
||||
|
||||
'%S'::
|
||||
Replaced with long name (git-receive-pack,
|
||||
git-upload-pack, or git-upload-archive) of the service
|
||||
git wants to invoke.
|
||||
|
||||
'%G<repository>' (as argument)::
|
||||
This argument will not be passed to 'program'. Instead, it
|
||||
will cause helper to start by sending git:// service request to
|
||||
remote side with service field set to approiate value and
|
||||
repository field set to <repository>. Default is not to send
|
||||
such request.
|
||||
+
|
||||
This is useful if remote side is git:// server accessed over
|
||||
some tunnel.
|
||||
|
||||
'%V<host>' (as argument)::
|
||||
This argument will not be passed to 'program'. Instead it sets
|
||||
the vhost field in git:// service request. Default is not to
|
||||
send vhost in such request (if sent).
|
||||
|
||||
ENVIRONMENT VARIABLES:
|
||||
----------------------
|
||||
|
||||
GIT_TRANSLOOP_DEBUG::
|
||||
If set, prints debugging information about various reads/writes.
|
||||
|
||||
ENVIRONMENT VARIABLES PASSED TO COMMAND:
|
||||
----------------------------------------
|
||||
|
||||
GIT_EXT_SERVICE::
|
||||
Set to long name (git-upload-pack, etc...) of service helper needs
|
||||
to invoke.
|
||||
|
||||
GIT_EXT_SERVICE_NOPREFIX::
|
||||
Set to long name (upload-pack, etc...) of service helper needs
|
||||
to invoke.
|
||||
|
||||
|
||||
EXAMPLES:
|
||||
---------
|
||||
This remote helper is transparently used by git when
|
||||
you use commands such as "git fetch <URL>", "git clone <URL>",
|
||||
, "git push <URL>" or "git remote add nick <URL>", where <URL>
|
||||
begins with `ext::`. Examples:
|
||||
|
||||
"ext::ssh -i /home/foo/.ssh/somekey user@host.example %S 'foo/repo'"::
|
||||
Like host.example:foo/repo, but use /home/foo/.ssh/somekey as
|
||||
keypair and user as user on remote side. This avoids needing to
|
||||
edit .ssh/config.
|
||||
|
||||
"ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo"::
|
||||
Represents repository with path /somerepo accessable over
|
||||
git protocol at abstract namespace address /git-server.
|
||||
|
||||
"ext::git-server-alias foo %G/repo"::
|
||||
Represents a repository with path /repo accessed using the
|
||||
helper program "git-server-alias foo". The path to the
|
||||
repository and type of request are not passed on the command
|
||||
line but as part of the protocol stream, as usual with git://
|
||||
protocol.
|
||||
|
||||
"ext::git-server-alias foo %G/repo %Vfoo"::
|
||||
Represents a repository with path /repo accessed using the
|
||||
helper program "git-server-alias foo". The hostname for the
|
||||
remote server passed in the protocol stream will be "foo"
|
||||
(this allows multiple virtual git servers to share a
|
||||
link-level address).
|
||||
|
||||
"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"::
|
||||
Represents a repository with path '/repo with spaces' accessed
|
||||
using the helper program "git-server-alias foo". The hostname for
|
||||
the remote server passed in the protocol stream will be "foo"
|
||||
(this allows multiple virtual git servers to share a
|
||||
link-level address).
|
||||
|
||||
"ext::git-ssl foo.example /bar"::
|
||||
Represents a repository accessed using the helper program
|
||||
"git-ssl foo.example /bar". The type of request can be
|
||||
determined by the helper using environment variables (see
|
||||
above).
|
||||
|
||||
Documentation
|
||||
--------------
|
||||
Documentation by Ilari Liusvaara, Jonathan Nieder and the git list
|
||||
<git@vger.kernel.org>
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
Reference in New Issue
Block a user