2011-12-06 2 views
0

커밋 할 때마다 포스트 커밋을 시도하여 내 웹 사이트를 업데이트하려고했습니다. 은/후크에/내가Subversion 커밋되지 않은 포스트 커밋

작동
env - ./post-commit 

이 웹 사이트는 마지막 개정 업데이 트를 얻을하려고하면 지금

/svnUupdat/cProgrammeThatUpdate >> /log/test.log 

확인에 따라 (거기 않았다으로

후 커밋 로그에 뭔가)

하지만 난이 커밋 경우 호출되지 않습니다 게시물을 커밋? 뭔가에있다 .. 내가 단지에 넣어 경우 ... 작동 뭔가를 위탁하는 경우

/bin/echo "post-commit run" >> /log/test.log 

을 후 커밋

주 (로그 및 사이트의 아무것도 업데이트되지되지 않음) 로그 왜 .. 내 C 프로그램을 호출하지 않는 이유는 무엇입니까?

이 왜 건너 대신 ...는 C programm에에게 내가 건너 뛴의/var/www가이 로그에

/usr/bin/svn update /var/www/vhost/xx.com/site1/ >> /var/log/svn/example.log 

를 호출 뭔가 다른 시도 편집,? 내가 터미널에서 SVN 업데이트를 실행할 경우이 작업 디렉토리가 최종 개정에게 '생략'메시지가이 작업 복사본 아니기 때문에 서브 디렉토리를 업데이트 할 수 없음을 나타냅니다

감사

답변

1

을 얻을 작동합니다. 그러나 이것은 디렉토리를 수동으로 갱신 할 수 있다는 진술과 충돌합니다. 어딘가에 오타가있을 수 있습니까?

은 또한 스크립트가 투입되어 사용자로 실행 후 커밋 알고 있어야합니다. 터미널을 사용할 때와 동일한 사용자 일 수도 그렇지 않을 수도 있습니다. 커밋 사용자에게 커밋 후 스크립트를 실행할 수있는 적절한 권한이 있는지 확인하고 해당 사용자에게 스크립트가 수행하는 모든 작업을 수행 할 수있는 권한이 있는지 확인해야합니다.

+0

안녕하세요, 사실 나는 (커밋 포스트에서) 내 경로에 오타가 있었다. 커밋 후에 커밋 된 경로가 로그에 없으므로 아마도 권한 문제입니다. 커밋하는 프로세스는 httpd이며 그 소유자는 아파치입니다. 이미 chown을 했었습니다. apache.apache post-commit 내 작업 디렉토리와 동일한 작업을 수행해야합니까? – Johny19

+0

작업 디렉토리를 업데이트 할 계획이므로 쓰기 권한이 있어야합니다. 'su - apache' (또는 여러분의 httpd 사용자가 무엇이든)를 시도하고 post-commit 스크립트를 실행하십시오. 그러나 http 데몬에 대한 사용 권한을 변경할 때 보안 관련 사항이있을 수 있으므로 수행중인 작업을 알고 있어야합니다. 대신 'svn + ssh'를 사용하여 repo에 액세스하는 방법을 고려 했습니까? –

2

는 SVN 후크 파일을 호출하는 경우에는 환경 변수가 설정되어 있지 않은 것처럼, 그것은 그렇게 조심하십시오. 따라서 훅 파일의 시작 부분에 수동으로 PATH 변수를 설정해야합니다.

관련 문제