web-dev-qa-db-ja.com

ジトライトクローンが意図したとおりに機能しない

私はDebianシステムを実行していて、最近DEBパッケージを使用してgitoliteをインストールしました。

これが私の問題です:

Gitolite-admin.gitリポジトリ(gitoliteで管理するすべてのリポジトリのgitoliteインストールを構成するために使用されます)のクローンを作成しようとしました。

私の最初の試みは、まさに指示がどのように述べているかでした:

git clone gitolite@server:gitolite-admin

次のエラーが発生しました。

fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

注:これは、gitolite-adminをgitolite-admin.gitに置き換えた場合にも発生します。
ただし、次のことを行うと:

git clone gitolite@server:~/repositories/gitolite-admin.git

この行は、リポジトリをローカルワークステーションに正常に複製します。
これで、ファイルパスに余分なテキストを追加することに問題はありませんが、ドキュメントによってこれが正しくないと言われています。

次のリンク( http://sitaramc.github.com/gitolite/doc/3-faq-tips-etc.html )は、「リポジトリ名の先頭にリポジトリを追加する/ gitclone」はよくあるエラー/間違いです。また、「実際、gitoliteは内部で$ REPO_BASEを付加するため、同じことを行うべきではありません!」とも述べています。

私の.gitolite.rcファイルには、$ REPO_BASEの次の行が含まれています。

[Located in /home/gitolite/.gitolite.rc]
$REPO_BASE="repositories";

私の質問は、私の構成の何が問題になっているのか、$ REPO_BASEが私のgitクローンの前に追加されないのですか?

さらに詳しい情報が必要な場合は、必要な情報をコメントに残してください。喜んで対応させていただきます。

その他の注意事項:

  • gitバージョン:1.7.2.3
  • gitoliteバージョン:1.5.4-2〜bp(Debian Lennyを使用していて、gitoliteはLennyに標準で付属していないため、これはlenny-backportsからのものです)
  • Debianのインストールでは、gitoliteリポジトリを管理するためのユーザー「gitolite」が作成されます。
6
invalidsyntax

gitolite@server:~/repositories/gitolite-admin.gitにアクセスできるが、gitolite@server:gitolite-adminにはアクセスできないということは、Gitoliteを「通過」しておらず、GitoliteユーザーへのプレーンなSSHベースのアクセスを使用していることを示しています。

ssh gitolite@server echo normal accessnormal accessを生成する場合、使用しているキーはGitoliteを通過することに制限されていません。 Gitoliteを使用している場合は、bad command: echo normal accessのようなものが表示されます。

これは、Gitoliteユーザー自体にSSHで接続するために使用するキーがあり、同じキーを使用してGitoliteユーザーとして認証しようとした場合に発生する可能性があります。 「通常のアクセス」キーは、特別なプレフィックスなしでgitoliteの.ssh/authorized_keysに存在します。 Gitoliteを通過するように構成されたキーの行は、command="/path/to/gl-auth-command gitolite-username",…のように始まります。

Gitoliteユーザーへの通常のSSHベースのアクセスとGitoliteベースのアクセスが必要な場合は、それらの目的のために別々のキーを設定して、.ssh/configファイルのIdentityFileオプションで使用するキーを指定できるようにする必要があります。 (ssh-agentがすでにロードされているという理由だけで、sshが「間違った」キーを使用していることがわかった場合は、おそらくIdentitiesOnly)。

例えば:

「デフォルト」キーの1つ(sshのデフォルトの1つ(例:~/.ssh/id_rsa)または通常ssh-agentにロードされているキー)を使用して、Gitoliteにアクセスします。 (つまり、アクティブなkeydir/your-gitolite-user-name.pubに公開鍵があります)。

Gitoliteユーザーに直接ログインするために使用する~/.ssh/gitolite-userを生成します。 ssh -i ~/.ssh/gitolite-user gitolite@serverを使用してログインします。または、カスタムエントリを~/.ssh/configに追加します。

Host gitolite-user
              User gitolite
          HostName server
      IdentityFile ~/.ssh/gitolite-user
    IdentitiesOnly yes

ssh gitolite-userを実行してログインできます。

6
Chris Johnsen

これと同じエラーが発生しました:

fatal: 'gitolite-admin' does not appear to be a git repository

リポジトリは機能していましたが、gitoliteパニックセクションで提案されているようにサーバーでクローンを使用してロールバックした後、リポジトリ内のいくつかのファイルにはgitolite3ではなく所有者ルートがありました。

gitolite-admin.git# ls -l
total 48
drwx------  2 gitolite3 gitolite3 4096 Mar 27  2012 branches
-rw-r--r--  1 gitolite3 gitolite3    6 Mar 27  2012 COMMIT_EDITMSG
-rw-------  1 gitolite3 gitolite3  119 Jul 12  2013 config
-rw-r--r--  1 gitolite3 gitolite3   73 Aug 25  2013 description
-rw-r--r--  1 gitolite3 gitolite3  128 Aug 23 20:44 gl-conf
-rw-------  1 root      root        23 Aug 26 13:45 HEAD
drwx------  2 gitolite3 gitolite3 4096 Aug 25  2013 hooks
-rw-------  1 root      root       605 Aug 26 13:45 index
drwx------  2 gitolite3 gitolite3 4096 Mar 27  2012 info
drwxr-xr-x  3 gitolite3 gitolite3 4096 Mar 27  2012 logs
drwx------ 83 gitolite3 gitolite3 4096 Aug 26 14:01 objects
drwx------  4 gitolite3 gitolite3 4096 Mar 27  2012 refs

修正は、所有権をgitolite3に戻すことです。

gitolite-admin.git# chown -R gitolite3:gitolite3 *
0
a9k