1

私はギトシスとギトライトに問題があり、何時間も研究に費やしてきましたが、役に立ちませんでした. 両方の製品のセットアップ手順を綿密に実行した後、共通の症状は、ターゲット リポジトリが gitosis/gitolite を介して適切に配置されていないことです。

これは失敗します:

$> git clone gitolite@example.com:testing
Cloning into testing...
fatal: 'testing' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

これが機能している間:

$> git clone gitolite@example.com:~/repositories/testing
Cloning into testing...
warning: You appear to have cloned an empty repository.

したがって、フル パスを指定することは機能しますが、これは何らかの形で gitosis/gitolite を実行していないことを示しています。

この問題に関連している可能性があるもう 1 つの症状は、インストール後に ssh 経由でサーバーに接続すると、次のメッセージが表示されて接続がフリーズすることです。

$> ssh gitolite@example.com
PTY allocation request failed on channel 0

また、「ssh gitolite@example.com info」を実行すると、gitolite の情報の代わりに GNU 情報を取得し続けます (「/usr/local/bin/gl-auth-command kreeble」を gitolite として実行すると取得できます)。サーバー上)。ユーザー gitolite の .ssh ディレクトリで、authorized_keys に gitolite コマンドを実行できるエントリが 1 つしかないことを確認しました。

command="/usr/local/bin/gl-auth-command kreeble",no-port-forwarding,\
   no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa long_key_base64_here \ 
   user@machine.local

gitolite プロンプトが表示されない理由について何か考えはありますか? この問題について何か考えていただければ幸いです。ありがとうございます。

4

2 に答える 2

1

この問題が発生しました。私が持っていた 1 台の mac os x マシンで gitolite を正常にセットアップしたのに、別の mac os x マシンでは同じセットアップで失敗したというのは奇妙なことでした。私の特定の問題は、gitolite-admin のクローンを作成しようとしたときと同じでしたが、「ssh git@localhost info」を試行すると、gitolite 情報の代わりに gnu 情報が返されました。ドキュメントでは、この問題は、サーバーで使用されているキーが間違っていたため、gitolite がバイパスされたことが原因であると説明されていました。

私の問題をさらに調べてみると、そうではありませんでした。実際、ssh コマンドの一部として -vvv を使用すると、Gitolite は正常に動作していました。 私の問題は、数か月前に gitosis または gitolite を機能させようとして (どちらかは覚えていません)、/etc/sshd_configを変更し、一番下に「 ForceCommand /usr/local/bin/ssh_session 」を追加したことでした。

その内容は次のとおりでした。

#!/bin/bash
export SSH_SESSION=1
if [ -z "$SSH_ORIGINAL_COMMAND" ] ; then
  export SSH_LOGIN=1
  exec login -fp "$USER"
else
  export SSH_LOGIN=
  [ -r /etc/profile ] && source /etc/profile
  [ -r ~/.profile ] && source ~/.profile
  eval exec "$SSH_ORIGINAL_COMMAND"
fi

これにより、sshがgitoliteのパスの一部をバイパスし、それらをシェルに直接移動させました。gitosis または gitolite のいずれかを機能させるための以前の試みでこれを試した可能性があるため、他の人も以前にこれを試したことが原因で、現在このエラーが発生している可能性があります。

于 2011-06-22T13:34:35.000 に答える
1

私はギトライトの前身であるギトシスについてしか知りませんが、問題は同じに違いありません。私はそれを考えるまで、まったく同じ問題を経験しました。

gitolite がインストールされていない場合、通常、git はリポジトリを ~git にインストールしますが、~gitolite はリポジトリを ~/gitolite/repositories/testing.git にインストールします。

.git サフィックスが必要であることは私の理解です。

gitolite@example.com:testing を実行すると、~gitolite/repositories/testing に移動しますが、コードは、リポジトリの名前を testing.git にする必要があると考えるように記述されていると思います。したがって、それはエラーと見なされます。

gitolite@example.com:~/repositories/testing はこの URL 書き換えルールをバイパスしますが、私の推測では、~gitosis/repositories/testing.git を再び探します。

今回はエラーハンドリングが違うコードのようです。testing.git が見つからない場合は、空のリポジトリを返すようにコーディングされていると思います。

.git サフィックスを追加するだけで、すべての問題がなくなります。少なくともそれが私のギトーシスの経験でした.

幸運を。

于 2011-07-09T05:06:48.290 に答える