]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-remote-ext.txt
t4034: abstract away SHA-1-specific constants
[thirdparty/git.git] / Documentation / git-remote-ext.txt
CommitLineData
7f3ecebf
IL
1git-remote-ext(1)
2=================
3
4NAME
5----
6git-remote-ext - Bridge smart transport to external command.
7
8SYNOPSIS
9--------
7791a1d9 10[verse]
3b0d2405 11git remote add <nick> "ext::<command>[ <arguments>...]"
7f3ecebf
IL
12
13DESCRIPTION
14-----------
3b0d2405 15This remote helper uses the specified '<command>' to connect
2de9b711 16to a remote Git server.
7f3ecebf 17
3b0d2405 18Data written to stdin of the specified '<command>' is assumed
469bfc96 19to be sent to a git:// server, git-upload-pack, git-receive-pack
7f3ecebf 20or git-upload-archive (depending on situation), and data read
3b0d2405 21from stdout of <command> is assumed to be received from
7f3ecebf
IL
22the same service.
23
469bfc96 24Command and arguments are separated by an unescaped space.
7f3ecebf
IL
25
26The following sequences have a special meaning:
27
28'% '::
29 Literal space in command or argument.
30
31'%%'::
32 Literal percent sign.
33
34'%s'::
35 Replaced with name (receive-pack, upload-pack, or
2de9b711 36 upload-archive) of the service Git wants to invoke.
7f3ecebf
IL
37
38'%S'::
39 Replaced with long name (git-receive-pack,
40 git-upload-pack, or git-upload-archive) of the service
2de9b711 41 Git wants to invoke.
7f3ecebf 42
469bfc96 43'%G' (must be the first characters in an argument)::
3b0d2405 44 This argument will not be passed to '<command>'. Instead, it
469bfc96
RW
45 will cause the helper to start by sending git:// service requests to
46 the remote side with the service field set to an appropriate value and
47 the repository field set to rest of the argument. Default is not to send
48 such a request.
7f3ecebf
IL
49+
50This is useful if remote side is git:// server accessed over
51some tunnel.
52
7851b1e6 53'%V' (must be first characters in argument)::
3b0d2405 54 This argument will not be passed to '<command>'. Instead it sets
469bfc96 55 the vhost field in the git:// service request (to rest of the argument).
7851b1e6 56 Default is not to send vhost in such request (if sent).
7f3ecebf 57
76a8788c
NTND
58ENVIRONMENT VARIABLES
59---------------------
7f3ecebf
IL
60
61GIT_TRANSLOOP_DEBUG::
62 If set, prints debugging information about various reads/writes.
63
76a8788c
NTND
64ENVIRONMENT VARIABLES PASSED TO COMMAND
65---------------------------------------
7f3ecebf
IL
66
67GIT_EXT_SERVICE::
68 Set to long name (git-upload-pack, etc...) of service helper needs
69 to invoke.
70
71GIT_EXT_SERVICE_NOPREFIX::
72 Set to long name (upload-pack, etc...) of service helper needs
73 to invoke.
74
75
76a8788c
NTND
76EXAMPLES
77--------
2de9b711 78This remote helper is transparently used by Git when
7f3ecebf 79you use commands such as "git fetch <URL>", "git clone <URL>",
3b0d2405 80, "git push <URL>" or "git remote add <nick> <URL>", where <URL>
7f3ecebf
IL
81begins with `ext::`. Examples:
82
83"ext::ssh -i /home/foo/.ssh/somekey user&#64;host.example %S 'foo/repo'"::
84 Like host.example:foo/repo, but use /home/foo/.ssh/somekey as
85 keypair and user as user on remote side. This avoids needing to
86 edit .ssh/config.
87
88"ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo"::
e1c3bf49 89 Represents repository with path /somerepo accessible over
7f3ecebf
IL
90 git protocol at abstract namespace address /git-server.
91
92"ext::git-server-alias foo %G/repo"::
93 Represents a repository with path /repo accessed using the
94 helper program "git-server-alias foo". The path to the
95 repository and type of request are not passed on the command
96 line but as part of the protocol stream, as usual with git://
97 protocol.
98
99"ext::git-server-alias foo %G/repo %Vfoo"::
100 Represents a repository with path /repo accessed using the
101 helper program "git-server-alias foo". The hostname for the
102 remote server passed in the protocol stream will be "foo"
2de9b711 103 (this allows multiple virtual Git servers to share a
7f3ecebf
IL
104 link-level address).
105
106"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"::
68ed71b5 107 Represents a repository with path `/repo with spaces` accessed
7f3ecebf
IL
108 using the helper program "git-server-alias foo". The hostname for
109 the remote server passed in the protocol stream will be "foo"
2de9b711 110 (this allows multiple virtual Git servers to share a
7f3ecebf
IL
111 link-level address).
112
113"ext::git-ssl foo.example /bar"::
114 Represents a repository accessed using the helper program
115 "git-ssl foo.example /bar". The type of request can be
116 determined by the helper using environment variables (see
117 above).
118
26726718
MH
119SEE ALSO
120--------
439cc746 121linkgit:gitremote-helpers[7]
26726718 122
7f3ecebf
IL
123GIT
124---
125Part of the linkgit:git[1] suite