2015-01-30 7 views
1

svn-mod_dav_svn을 이미 구성한 CentOS 7 가상 시스템 (VirtualBox 게스트)이 있고 checkout 및 commit을 할 수 있습니다. 문제는 pre-commit 후크를 추가 한 다음 Windows 시스템 (VirtualBox 호스트)에서 커밋을 시도 할 때입니다. TortoiseSVN이이 오류와 함께 실패합니다.Svn pre-commit hook이 실행되지 않음

출력이없는 사전 커밋 후크 (종료 코드 255)로 차단됩니다. httpd 실행 로그에서

내가

있어

[클라이언트 xx.xx.xx.xxx:57] 자원을 병합 할 수 없습니다 "/ SVN/testrepo /! SVN/TXN/5-2f"로 "/ SVN/testrepo/trunk "라고합니다. [500, # 0]

모든 권한이 올바르게 설정되어 있으며, 777을 시도해도 후크를 제거하지 않으면 작동하지 않습니다. 제 10 subversion.conf 파일에없는 무언가가 있다면 제가 궁금하네요 http://www.unixmen.com/install-subversion-centos-7/

...

내가 기본값을 사용하고 있습니다 :

이 내가 설정을 위해 다음의 기준입니다 사전 커밋은 이미 실행 파일로 설정되어 있으며 소유자는 apache 사용자입니다. 내가 한 또 다른 테스트는 pre-commit 스크립트의 모든 코드를 삭제하여 "exit 0"명령 만 남기는 것입니다.

LoadModule dav_svn_module  modules/mod_dav_svn.so 
    LoadModule authz_svn_module modules/mod_authz_svn.so 
    LoadModule dontdothat_module modules/mod_dontdothat.so 

    <Location /svn> 
     DAV svn 
     SVNParentPath /var/www/svn 
     AuthType Basic 
     AuthName "Subversion repositories" 
     AuthUserFile /etc/svn-auth-users 
     Require valid-user 
    </Location> 
CustomLog logs/svn_logfile "%t %u %{SVN-ACTION}e" env=SVN-ACTION 
+2

적어도 후크 스크립트의 코드를 추가해야합니다. –

+0

그냥 기본 커밋 전 커밋입니다 ...주석이 있는지 확인하고 사용자가 커밋 할 수 있으면 "exit 0"행을 제외한 모든 코드를 제거하려고 시도합니다. –

답변

4

마지막으로 해결책이 있습니다. 근본적인 원인은 SELinux가 사전 커밋 스크립트가 httpd 서비스를 통해 실행되도록 허용하지 않았기 때문입니다. 이 줄을 달아서 그걸 없애 버려.

chcon -t httpd_exec_t pre-commit 

모두 감사합니다! 나는 이것이 다른 누군가에게 도움이되기를 바랍니다.

2

당신이 당신의 precommit 스크립트를 게시 할 수 있습니다 :

이 제 10 subversion.conf 파일과 같은 방법입니까? 그렇지 않으면 ".sh"스크립트에 다음을 추가하십시오. 라인에서

set -xv 

#!/bin/bash 

마지막으로 보이는

후 :

#!/bin/bash 
set -xv 

이, 더 많은 기록을 제공하지 않는 경우 스크립트의 파일로 출력을 리디렉션합니다. 따라서 스크립트를 디버깅 할 수 있습니다.

또한 아파치의 로그인을 늘릴 수도 있습니다. 이 http://svnbook.red-bean.com/en/1.6/svn.serverconfig.httpd.html#svn.serverconfig.httpd.extra.logging

그래서 당신은 단지 SVN에 대한 하나 개의 파일을 얻을 것이다 확인하고 로그 수준도 재생할 수 있습니다.

스크립트의 변경이 더 쉽기 때문에 개인적으로 먼저 시도해 보겠습니다.

(다음 질문은 좀 더 구체적으로 기재하십시오)

+0

답장을 보내 주셔서 감사합니다. 안내에 대한 링크를 추가 했으므로 단계를 살펴볼 수 있습니다. 후크는 내가 이미 실행 파일로 설정하고 아파치 사용자가 그것을 소유하게 만든 디폴트 pre-commit이다. 나는 심지어 "exit 0"문장을 남기고 모든 코드를 삭제하려고 시도했다. 내가 제안한 사용자 지정 로그 지시문을 배치했지만 로그가 쓰여지지 않습니다. –