2011-12-05 19 views
1

私の設定は
です。1. Gitストレージ用のOS X runnig apache server。
2. Gitのプロジェクトのための私のディレクトリはここにある:/ライブラリ/ WebServer/Documents/CI
3.私は、このチュートリアルに続いてきた:http://www.pkgbox.org/wordpress/2011/08/setting-up-a-git-server-on-macos-x-lion/をし、私のgitrepo.confが似ている4.
HTTP上でGitのアクセスをsetted:
GitはOS XのHTTP経由で受信します

DavLockDB "/var/www/DavLock/Lock" 
DavMinTimeout 28800 

<Directory /Library/WebServer/Documents/CI> 
    DAV On 
    Deny from all 
    AuthType Basic 
    AuthName "Area51 git repositories" 
    AuthUserFile /etc/apache2/other/htpasswd-git 
    AuthGroupFile /etc/apache2/other/htgroup-git 

</Directory> 
<Directory /Library/WebServer/Documents/CI/ci_test.git> 
Allow from all 
Order allow,deny 
Require valid-user 
<Limit GET> 
Require group myproject-reader 
</Limit> 
<Limit GET PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> 
Require group myproject-writer 
</Limit> 
</Directory> 

5. HTTP経由で認証が動作している、私は別のユーザーと異なるグループを持っているし、それはすべて正常に動作しています。

私の問題は次のとおりです。 私のgitでポスト受信フックを使用できるようにしたいと思います。私はこの質問を読んだ:Git post-receive hook not working そして私がそこから得ているのは、SMART HTTPをセットアップする必要があるということです。残念ながら、このリンク: http://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html GETは404

私だ、私はここに読んだ:http://progit.org/2010/03/04/smart-http.htmlが、私はサーバーの設定で、本当に初心者だと私は私が何をしたとしていますかを理解していない...あなたは私を提供することができGITフックを有効にするための有効な設定ですか?

提案された解決策 SMART HTTPへの変更。

:ここ

は、私は、この要求をするために127.0.0.1 今、私はできないよに指してciserver.smtを追加するために/ etc/hostsファイルを変更した私の現在のgitrepo.conf

<VirtualHost *:80> 
    ServerName ciserver.smt 
    DocumentRoot /Library/WebServer/Documents/CI 

    SetEnv GIT_PROJECT_ROOT /Library/WebServer/Documents/CI 
    SetEnv GIT_HTTP_EXPORT_ALL 

    ScriptAlias//usr/libexec/git-core/git-http-backend/ 
    AliasMatch ^/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$   /Library/WebServer/Documents/CI/$1 
    AliasMatch ^/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /Library/WebServer/Documents/CI/$1 

    ScriptAliasMatch \ 
    "(?x)^/(.*/(HEAD | \ 
    info/refs | \ 
    objects/(info/[^/]+ | \ 
     [0-9a-f]{2}/[0-9a-f]{38} | \ 
     pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ 
    git-(upload|receive)-pack))$" \ 
    /usr/libexec/git-core/git-http-backend/$1 

    <LocationMatch "^/.*/git-receive-pack$"> 
    AuthType Basic 
    AuthName "Git" 
    AuthUserFile /etc/apache2/other/htpasswd-git 
    AuthGroupFile /etc/apache2/other/htgroup-git 
    <Limit GET> 
    Require group myproject-reader 
    </Limit> 
    <Limit GET PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> 
    Require group myproject-writer 
    </Limit> 
    </LocationMatch> 
</VirtualHost> 

です

git clone http://[email protected]/ci_test.git 

私が取得しています:

error: The requested URL returned error: 403 while accessing http://[email protected]/ci_test.git/info/refs 

fatal: HTTP request failed 

は、私はまだ間違って何をしたのですか?

答えて

1

webdav共有リポジトリでフックを実行できないようです。しかし、スマートHTTPプロトコル(CGI経由でWebサーバーに組み込まれています)を使用することができます。これはフックを処理します。

詳細はhttp://dev.bazingaweb.fr/2011/02/23/how-to-set-up-git-over-http.htmlを参照してください。

+0

私はあなたの貼り付けられたリンクをたどってきました(私が従うべき方向を知っているように大きな感謝)。私はここで何か間違ったことをしたことが怖いです。変更された設定で質問を更新します – Ertai

関連する問題