3

http をプッシュまたはプルできる cgit インスタンスをセットアップしようとしています。ただし、cgit を介して http 経由でリポジトリを参照できますが、このリポジトリにプッシュしようとすると、エラーが発生します。

致命的です。/info/refs が無効です。これは git リポジトリですか?

このパスはサーバー上に存在し、これは空のファイルです。git update-server-info を自動的に実行する更新後のフックを作成しました (リポジトリの post-update.example)。しかし、http 経由で /info/refs ファイルを表示しようとすると、cgit から、これが空のリポジトリであるという通知が表示されます。

cgit が提供する URL でプッシュまたはプルできるように、http 経由でこのファイルにアクセスするにはどうすればよいですか?

共有ホスティングプロバイダーにリポジトリがあるため、apache.conf にはアクセスできず、.htaccess ファイルにしかアクセスできません...

4

2 に答える 2

1

私が知る限り、cgit は Git リポジトリへのプッシュを有効にしません (機能リストを調べてから)。

git-http-backendプッシュできるように設定する必要があるでしょう。git-http-backendマンページには、認証された書き込みによる匿名読み取り、および認証された読み取りと書き込みのための Apache 2.x の設定例があります。

于 2012-10-14T22:35:27.613 に答える
0

よりも機能が豊富なバックエンドが必要な場合は、 gitolitegit-http-backendをお勧めします。それはいくつかの本当に素晴らしい機能を持っています:

  • サーバー上で単一のUNIXユーザー(「実際の」ユーザー)を使用する
  • 多くのgitoliteユーザーにアクセスを提供します。
    • 彼らは「本当の」ユーザーではありません
    • シェルアクセスを取得しません
  • 多くのgitリポジトリへのアクセスを制御します。
    • リポジトリレベルで制御される読み取りアクセス
    • ブランチ/タグを巻き戻し、作成、削除できるユーザーを含め、ブランチ/タグ/ファイル/ディレクトリレベルで制御される書き込みアクセス
  • gitとperlがすでにインストールされている場合は、rootアクセスなしでインストールできます
  • 認証は最も一般的にsshdを使用して行われますが、必要に応じてhttpを使用することもできます(これにはrootアクセスが必要になる場合があります)
  • すべての構成を管理Gitリポジトリに保存します

これは、より重要な機能のほんの一部です。さらに、独自のスクリプトを使用してその動作を簡単に拡張できます。

于 2013-02-27T09:09:53.587 に答える