我有一个Centos 7虚拟机(VirtualBox guest)作为我的svn服务器,已配置svn - mod_dav_svn并使一切工作正常:可以结帐并做提交.问题是,当添加预提交钩子然后尝试从Windows机器(VirtualBox主机)提交时TortoiseSVN失败并出现此错误
提交被预提交挂钩(退出代码255)阻止而没有输出.
从我得到的httpd日志
[client xx.xx.xx.xxx:57]无法将资源"/ svn/testrepo /!svn/txn/5-2f"合并到"/ svn/testrepo/trunk"中.[500,#0]
所有权限都设置正确,我甚至尝试777,除非我删除钩子它不起作用.
这是我设置的参考:http: //www.unixmen.com/install-subversion-centos-7/
我想知道我的10-subversion.conf文件中是否缺少某些内容......
我正在使用默认的预提交,它已经设置为可执行文件,并且所有者是apache用户.我做的另一个测试是删除预提交脚本中的所有代码,只留下"退出0"指令.
这就是我的10-subversion.conf文件的样子:
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
Run Code Online (Sandbox Code Playgroud)
终于得到了解决方案.根本原因是SELinux不允许通过httpd服务执行预提交脚本.我通过运行这条线来摆脱它
chcon -t httpd_exec_t pre-commit
Run Code Online (Sandbox Code Playgroud)
感谢大家!我希望这对其他人有帮助.