1git-remote-ext(1) 2================= 3 4NAME 5---- 6git-remote-ext - Bridge smart transport to external command. 7 8SYNOPSIS 9-------- 10git remote add <nick> "ext::<command>[ <arguments>...]" 11 12DESCRIPTION 13----------- 14This remote helper uses the specified '<command>' to connect 15to a remote git server. 16 17Data written to stdin of the specified '<command>' is assumed 18to be sent to a git:// server, git-upload-pack, git-receive-pack 19or git-upload-archive (depending on situation), and data read 20from stdout of <command> is assumed to be received from 21the same service. 22 23Command and arguments are separated by an unescaped space. 24 25The 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 42'%G' (must be the first characters in an argument):: 43 This argument will not be passed to '<command>'. Instead, it 44 will cause the helper to start by sending git:// service requests to 45 the remote side with the service field set to an appropriate value and 46 the repository field set to rest of the argument. Default is not to send 47 such a request. 48+ 49This is useful if remote side is git:// server accessed over 50some tunnel. 51 52'%V' (must be first characters in argument):: 53 This argument will not be passed to '<command>'. Instead it sets 54 the vhost field in the git:// service request (to rest of the argument). 55 Default is not to send vhost in such request (if sent). 56 57ENVIRONMENT VARIABLES: 58---------------------- 59 60GIT_TRANSLOOP_DEBUG:: 61 If set, prints debugging information about various reads/writes. 62 63ENVIRONMENT VARIABLES PASSED TO COMMAND: 64---------------------------------------- 65 66GIT_EXT_SERVICE:: 67 Set to long name (git-upload-pack, etc...) of service helper needs 68 to invoke. 69 70GIT_EXT_SERVICE_NOPREFIX:: 71 Set to long name (upload-pack, etc...) of service helper needs 72 to invoke. 73 74 75EXAMPLES: 76--------- 77This remote helper is transparently used by git when 78you use commands such as "git fetch <URL>", "git clone <URL>", 79, "git push <URL>" or "git remote add <nick> <URL>", where <URL> 80begins 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 118Documentation 119-------------- 120Documentation by Ilari Liusvaara, Jonathan Nieder and the git list 121<git@vger.kernel.org> 122 123GIT 124--- 125Part of the linkgit:git[1] suite