2011-12-05 6 views
1

내 설정 :
1. Git 저장소 용 OS X runnig apache 서버.
2. 망할 놈의 프로젝트에 대한 나의 디렉토리는 여기에 있습니다 :/라이브러리/웹 서버/문서/CI
내가이 튜토리얼을 따라 한 3. http://www.pkgbox.org/wordpress/2011/08/setting-up-a-git-server-on-macos-x-lion/
4. 내 gitrepo.conf 같은입니다 HTTP를 통해 망할 놈의 접근을 잘 살고 : HTTP를 통해
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. 인증이 작동, 나는 다른 사용자와 다른 그룹을 가지고 있으며 모든 작업 괜찮습니다.

내 문제는 : 내 자식에서 수신 후크를 사용할 수 있기를 원합니다. 이 질문을 읽었습니다 : 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 공유 저장소에서 후크를 실행할 수없는 것 같습니다. 그러나 CGI를 통해 웹 서버에 포함 된 스마트 HTTP 프로토콜을 사용할 수 있습니다.이 프로토콜은 후크를 처리합니다.

자세한 내용은 http://dev.bazingaweb.fr/2011/02/23/how-to-set-up-git-over-http.html을 참조하십시오.

+0

나는 당신의 붙여 넣기 된 링크를 따라 갔다. (내가 따라야 할 방향을 안다. 나는 여기서 뭔가 잘못했음을 두려워한다. 변경된 설정으로 내 질문을 업데이트하겠습니다. – Ertai