Documentation/remote-helpers: Rewrite description

Rewrite the description section to describe what exactly remote
helpers are and the need for them. Also mention the curl family of
remote helpers as an example.

[jc: with readability fixes from Jonathan squashed in]

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ramkumar Ramachandra 2010-03-28 23:33:50 +05:30 committed by Junio C Hamano
parent 11766ca4a8
commit 00b84e9dbf

View File

@ -3,7 +3,7 @@ git-remote-helpers(1)
NAME NAME
---- ----
git-remote-helpers - Helper programs for interoperation with remote git git-remote-helpers - Helper programs to interact with remote repositories
SYNOPSIS SYNOPSIS
-------- --------
@ -12,11 +12,32 @@ SYNOPSIS
DESCRIPTION DESCRIPTION
----------- -----------
These programs are normally not used directly by end users, but are Remote helper programs are normally not used directly by end users,
invoked by various git programs that interact with remote repositories but they are invoked by git when it needs to interact with remote
when the repository they would operate on will be accessed using repositories git does not support natively. A given helper will
transport code not linked into the main git binary. Various particular implement a subset of the capabilities documented here. When git
helper programs will behave as documented here. needs to interact with a repository using a remote helper, it spawns
the helper as an independent process, sends commands to the helper's
standard input, and expects results from the helper's standard
output. Because a remote helper runs as an independent process from
git, there is no need to re-link git to add a new helper, nor any
need to link the helper with the implementation of git.
Every helper must support the "capabilities" command, which git will
use to determine what other commands the helper will accept. Other
commands generally concern facilities like discovering and updating
remote refs, transporting objects between the object database and
the remote repository, and updating the local object store.
Helpers supporting the 'fetch' capability can discover refs from the
remote repository and transfer objects reachable from those refs to
the local object store. Helpers supporting the 'push' capability can
transfer local objects to the remote repository and update remote refs.
Git comes with a "curl" family of remote helpers, that handle various
transport protocols, such as 'git-remote-http', 'git-remote-https',
'git-remote-ftp' and 'git-remote-ftps'. They implement the capabilities
'fetch', 'option', and 'push'.
COMMANDS COMMANDS
-------- --------