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