2012-04-17 7 views
3

httpをプッシュまたはプルできるcgitインスタンスを設定しようとしています。しかし、私はCGITを経由してHTTP経由で私のレポを閲覧することができていますが、私はこのレポにプッシュしようとすると、私はエラーを取得:プッシュでcgitをセットアップし、httpをプッシュするにはどうすればよいですか?

Fatal, /info/refs not valid, is this a git repository?

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

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

私の知る限り...

答えて

1

を私は共有ホスティングプロバイダの私のレポを持っているので、私はapache.confにしか.htaccessファイルへのアクセスがない、CGITは有効になりません。 Gitリポジトリに(feature listを見てから)プッシュします。

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

0

git-http-backendよりも豊富な機能を備えたバックエンドをご希望の場合は、gitoliteをお勧めします。それはいくつかの本当に素晴らしい機能を持っています

  • は、サーバ
  • 上の単一のUNIXユーザー(「本物」のユーザー)を使用し、多くのgitoliteのユーザーへのアクセスを提供します
    • 彼らは
    • 「本物」のユーザーではありません彼らは多くのGitリポジトリへのシェルアクセス
  • コントロールアクセスを取得しない
    • は、読み取りアクセスをgitのを想定し、巻き戻しの作成、および
  • はrootアクセスせずにインストールすることができます枝/タグを削除できるユーザーを含むブランチ/タグ/ファイル/ディレクトリレベルで制御レポレベル
  • 書き込みアクセス、で制御し、 perlのすでに認証は、最も一般的にsshdを使用して行われ
  • をインストールされていますが、(これはrootアクセスが必要な場合があります)を好む場合は、また、HTTPを使用することができます
  • ストアは、admin gitリポジトリ内のすべてのコンフィギュレーション

これはもっと重要な機能の一部です。さらに、独自のスクリプトで動作を拡張するのは簡単です。

+0

私は現在gitlabを試しています。それは、2人のユーザーといくつかのreposでの小さなセットアップではかなり大きいようです。 – simonszu

+0

また、セットアップが非常に簡単なJavaベースのgitサーバーである[Gitblit GO](http://gitblit.com)のようなものを試すこともできます。または単に[git over ssh](http://www.mindfuzz.net/?p=250)を使用してください。 – stigkj

+0

Hm。 GitblitはJavaベースです。最近のJavaの脆弱性はRoRの脆弱性を上回っているので、私はgitlabにとどまると思う。 ;) – simonszu