SYNOPSIS

git remote add <nick> "ext::<command>[ <arguments>…]"

DESCRIPTION

このリモートヘルパーは、指定の <command> を使用してリモートGitサーバーに接続します。

指定の <command> のstdinに書き込んだデータは、git:// サーバーまたは git-upload-pack または git-receive-pack または (状況に応じて)git-upload-archive に送信されるものと見なし、かつ、 <command> のstdoutからの読み取りは、同一のサービスから受信されたものと見なされます。

コマンドと引数は、エスケープされていない空白で区切られます。

以下のシーケンスには特別な意味があります:

`% `

コマンドまたは引数のリテラル空白

%%

リテラルのパーセント文字

%s

Gitが呼び出したいサービスの名前(receive-pack または upload-pack または upload-archive)に置き換えられます。

%S

Gitが呼び出したいサービスの長い名前(long name)(git-receive-pack または git-upload-pack または git-upload-archive)に置き換えられます。

%G (引数の最初の文字列である必要があります)

この引数は <command> には渡されません。その代わりにヘルパーは、サービスフィールドが適切な値に設定され、かつ、リポジトリフィールドが引数の残りの部分に設定された状態でリモート側に git:// サービス要求(request)を送信することから開始します。デフォルトでは、そのような要求は送信されません。

これはリモート側の git:// サーバーへトンネルを介してアクセスする場合に便利です。

%V (引数の最初の文字列である必要があります)

この引数は <command> には渡されません。その代わりに git:// サービス要求でvhostフィールドを(引数の残りの部分に)設定します。デフォルトでは、(送信の場合)そのような要求でvhostを送信しません。

ENVIRONMENT VARIABLES

GIT_TRANSLOOP_DEBUG

設定されている場合、さまざまな読み取り/書き込みに関するデバッグ情報を出力します。

ENVIRONMENT VARIABLES PASSED TO COMMAND

GIT_EXT_SERVICE

サービスヘルパーが呼び出す必要のある長い名前(git-upload-pack など)を設定します。

GIT_EXT_SERVICE_NOPREFIX

サービスヘルパーが呼び出す必要のある名前(upload-pack など)を設定します。

EXAMPLES

このリモートヘルパーは、 git fetch <URL>git clone <URL>git push <URL>git remote add <nick> <URL> などのコマンドを使用するときに、Gitによって透過的に使用され、 <URL>は ext:: で始まります。 例:

"ext::ssh -i /home/foo/.ssh/somekey user@host.example %S foo/repo"

host.example:foo/repo と同様ですが、キーペアとして /home/foo/.ssh/somekey を使用し、リモート側のユーザーとしてuserを使用します。 これにより、 .ssh/config を編集する必要がなくなります。

"ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo"

抽象名前空間アドレス(abstract namespace address) /git-server でgitプロトコルを介してアクセス可能なパス /somerepo を持つリポジトリを表します。

"ext::git-server-alias foo %G/repo"

ヘルパープログラム git-server-alias foo を使用してアクセスされるパス /repo を持つリポジトリを表します。リポジトリへのパスとリクエストのタイプは、コマンドラインではなく、通常の git:// プロトコルのようにプロトコルストリームの一部として渡されます。

"ext::git-server-alias foo %G/repo %Vfoo"

ヘルパープログラム git-server-alias foo を使用してアクセスされるパス /repo を持つリポジトリを表します。プロトコルストリームで渡されるリモートサーバーのホスト名は「foo」になります(これにより、複数の仮想Gitサーバーがリンクレベルのアドレスを共有できるようになります)。

"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"

ヘルパープログラム git-server-alias foo を使用してアクセスされるパス /repo with spaces のリポジトリを表します。プロトコルストリームで渡されるリモートサーバーのホスト名は「foo」になります(これにより、複数の仮想Gitサーバーがリンクレベルのアドレスを共有できるようになります)。

"ext::git-ssl foo.example /bar"

ヘルパープログラム git-ssl foo.example /bar を使用してアクセスされるリポジトリを表します。リクエストのタイプは、ヘルパーが環境変数を使用して決定できます(上記参照)。

SEE ALSO

GIT

Part of the git(1) suite