2 .\" Title: git-remote-ext
3 .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
4 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
7 .\" Source: Git 2.44.0.568.g436d4e5b14
10 .TH "GIT\-REMOTE\-EXT" "1" "2024\-04\-10" "Git 2\&.44\&.0\&.568\&.g436d4e" "Git Manual"
11 .\" -----------------------------------------------------------------
12 .\" * Define some portability stuff
13 .\" -----------------------------------------------------------------
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 .\" http://bugs.debian.org/507673
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
25 .\" disable justification (adjust text to left margin only)
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
31 git-remote-ext \- Bridge smart transport to external command\&.
35 git remote add <nick> "ext::<command>[ <arguments>\&...]"
40 This remote helper uses the specified \fI<command>\fR to connect to a remote Git server\&.
42 Data written to stdin of the specified \fI<command>\fR 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 <command> is assumed to be received from the same service\&.
44 Command and arguments are separated by an unescaped space\&.
46 The following sequences have a special meaning:
50 Literal space in command or argument\&.
55 Literal percent sign\&.
60 Replaced with name (receive\-pack, upload\-pack, or upload\-archive) of the service Git wants to invoke\&.
65 Replaced with long name (git\-receive\-pack, git\-upload\-pack, or git\-upload\-archive) of the service Git wants to invoke\&.
68 \fI%G\fR (must be the first characters in an argument)
70 This argument will not be passed to
71 \fI<command>\fR\&. 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 the rest of the argument\&. Default is not to send such a request\&.
73 This is useful if the remote side is git:// server accessed over some tunnel\&.
76 \fI%V\fR (must be first characters in argument)
78 This argument will not be passed to
79 \fI<command>\fR\&. Instead it sets the vhost field in the git:// service request (to the rest of the argument)\&. Default is not to send vhost in such request (if sent)\&.
81 .SH "ENVIRONMENT VARIABLES"
85 If set, prints debugging information about various reads/writes\&.
87 .SH "ENVIRONMENT VARIABLES PASSED TO COMMAND"
91 Set to long name (git\-upload\-pack, etc\&...) of service helper needs to invoke\&.
94 GIT_EXT_SERVICE_NOPREFIX
96 Set to long name (upload\-pack, etc\&...) of service helper needs to invoke\&.
100 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 \fBext::\fR\&. Examples:
102 "ext::ssh \-i /home/foo/\&.ssh/somekey user@host\&.example %S \fIfoo/repo\fR"
104 Like host\&.example:foo/repo, but use /home/foo/\&.ssh/somekey as keypair and user as the user on the remote side\&. This avoids the need to edit \&.ssh/config\&.
107 "ext::socat \-t3600 \- ABSTRACT\-CONNECT:/git\-server %G/somerepo"
109 Represents repository with path /somerepo accessible over git protocol at the abstract namespace address /git\-server\&.
112 "ext::git\-server\-alias foo %G/repo"
114 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\&.
117 "ext::git\-server\-alias foo %G/repo %Vfoo"
119 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)\&.
122 "ext::git\-server\-alias foo %G/repo% with% spaces %Vfoo"
124 Represents a repository with path
125 \fB/repo with spaces\fR
126 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)\&.
129 "ext::git\-ssl foo\&.example /bar"
131 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)\&.
135 \fBgitremote-helpers\fR(7)
138 Part of the \fBgit\fR(1) suite