2 .\" Title: git-remote-ext
3 .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
4 .\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
7 .\" Source: Git 2.47.0.rc1.33.g90fe3800b9
10 .TH "GIT\-REMOTE\-EXT" "1" "2024-10-04" "Git 2\&.47\&.0\&.rc1\&.33\&.g9" "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>\&...\:]"
39 This remote helper uses the specified \fI<command>\fR to connect to a remote Git server\&.
41 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\&.
43 Command and arguments are separated by an unescaped space\&.
45 The following sequences have a special meaning:
49 Literal space in command or argument\&.
54 Literal percent sign\&.
59 Replaced with name (receive\-pack, upload\-pack, or upload\-archive) of the service Git wants to invoke\&.
64 Replaced with long name (git\-receive\-pack, git\-upload\-pack, or git\-upload\-archive) of the service Git wants to invoke\&.
67 \fI%G\fR (must be the first characters in an argument)
69 This argument will not be passed to
70 \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\&.
72 This is useful if the remote side is git:// server accessed over some tunnel\&.
75 \fI%V\fR (must be first characters in argument)
77 This argument will not be passed to
78 \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)\&.
80 .SH "ENVIRONMENT VARIABLES"
84 If set, prints debugging information about various reads/writes\&.
86 .SH "ENVIRONMENT VARIABLES PASSED TO COMMAND"
90 Set to long name (git\-upload\-pack, etc\&...\:) of service helper needs to invoke\&.
93 GIT_EXT_SERVICE_NOPREFIX
95 Set to long name (upload\-pack, etc\&...\:) of service helper needs to invoke\&.
99 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:
101 "ext::ssh \-i /home/foo/\&.ssh/somekey user@host\&.example %S \fIfoo/repo\fR"
103 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\&.
106 "ext::socat \-t3600 \- ABSTRACT\-CONNECT:/git\-server %G/somerepo"
108 Represents repository with path /somerepo accessible over git protocol at the abstract namespace address /git\-server\&.
111 "ext::git\-server\-alias foo %G/repo"
113 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\&.
116 "ext::git\-server\-alias foo %G/repo %Vfoo"
118 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)\&.
121 "ext::git\-server\-alias foo %G/repo% with% spaces %Vfoo"
123 Represents a repository with path
124 \fB/repo with spaces\fR
125 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)\&.
128 "ext::git\-ssl foo\&.example /bar"
130 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)\&.
134 \fBgitremote-helpers\fR(7)
137 Part of the \fBgit\fR(1) suite