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 a 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 an 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' (must be the first characters in an argument)::
	This argument will not be passed to 'program'. Instead, it
	will cause the helper to start by sending git:// service requests to
	the remote side with the service field set to an appropriate value and
	the repository field set to rest of the argument. Default is not to send
	such a request.
+
This is useful if remote side is git:// server accessed over
some tunnel.

'%V' (must be first characters in argument)::
	This argument will not be passed to 'program'. Instead it sets
	the vhost field in the git:// service request (to rest of the argument).
	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&#64;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
