2012-05-10 1 views
1

git 저장소가있는 서버가 있습니다. 그 서버에 push 할 때마다 저장소에 대한 gitstats 문서를 다시 생성하고 싶습니다.Git 사후 수신 후크가 제대로 작동하지 않습니다.

gitstats /home/<username>/<proyect-name>/htdocs/ /home/<username>/gitstats 

를 그리고 여기 해당 서버에있는 저장소에 후크를 포스트받을 내이다 : 나는 다음과 같은 명령을 실행할 경우 해당 컴퓨터에서

는 gitstats 문서는 그것을 제대로 새로 고칠 것

#!/bin/sh 
gitstats /home/<username>/<proyect-name>/htdocs/ /home/<username>/gitstats 

따라서 해당 컴퓨터로 밀어 넣을 때 해당 명령을 실행하려고 시도하지만 올바르게 작동하지 않으면 밀어 넣기 후 출력 메시지에 다음과 같은 오류 메시지가 표시됩니다.

remote: fatal: Not a git repository: '.' 

후크에서 해당 명령을 제거하면 오류 메시지가 표시되지 않습니다.

서버에서 직접 실행될 때 명령이 제대로 작동하는 이유와 푸시 후에 실행될 때 이해가되지 않습니다.

제안 사항?

답변

1

해당 후크 내에서 gitstat를 실행할 때 GIT_WORK_TREE 및/또는 GIT_DIR이 올바르게 설정되지 않았을 수 있습니다.

바로 gitstat 명령하기 전에 설정하십시오 :이 변수가 제대로 이유를

GIT_DIR=/home/<username>/<proyect-name>/.git 
GIT_WORK_TREE=/home/<username>/<proyect-name> 
gitstats ... 

을 설정하지 않을까요?
예를 들어 페이지의 "Calling 'git pull' from a git post-update hook"

은 결국 우리가 이상 우리의 리눅스 전문가를 얻었다 그가 자식 사용자가 실행되는 환경이 때 후크 안에 완전히 다른 것으로 나타났습니다. 당신의 <username> 후크가 실행될 때 생각이 아닐 것입니다 경우입니다

...