git-remote-fd(1)
================

NAME
----
git-remote-fd - Reflect smart transport stream back to caller

SYNOPSIS
--------
"fd::<infd>[,<outfd>][/<anything>]" (as URL)

DESCRIPTION
-----------
This helper uses specified file descriptors to connect to a remote git server.
This is not meant for end users but for programs and scripts calling git
fetch, push or archive.

If only <infd> is given, it is assumed to be a bidirectional socket connected
to remote git server (git-upload-pack, git-receive-pack or
git-upload-achive). If both <infd> and <outfd> are given, they are assumed
to be pipes connected to a remote git server (<infd> being the inbound pipe
and <outfd> being the outbound pipe.

It is assumed that any handshaking procedures have already been completed
(such as sending service request for git://) before this helper is started.

<anything> can be any string. It is ignored. It is meant for providing
information to user in the URL in case that URL is displayed in some
context.

ENVIRONMENT VARIABLES
---------------------
GIT_TRANSLOOP_DEBUG::
	If set, prints debugging information about various reads/writes.

EXAMPLES
--------
`git fetch fd::17 master`::
	Fetch master, using file descriptor #17 to communicate with
	git-upload-pack.

`git fetch fd::17/foo master`::
	Same as above.

`git push fd::7,8 master (as URL)`::
	Push master, using file descriptor #7 to read data from
	git-receive-pack and file descriptor #8 to write data to
	same service.

`git push fd::7,8/bar master`::
	Same as above.

Documentation
--------------
Documentation by Ilari Liusvaara and the git list <git@vger.kernel.org>

GIT
---
Part of the linkgit:git[1] suite
