[英]Svn pre-commit hook not getting executed
我有一個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
終於得到了解決方案。 根本原因是SELinux不允許通過httpd服務執行預提交腳本。 我通過運行這條線來擺脫它
chcon -t httpd_exec_t pre-commit
感謝大家! 我希望這對其他人有所幫助。
你可以發布你的預先提交腳本嗎? 如果沒有,請在“.sh”腳本中添加以下內容。
set -xv
在后面的線
#!/bin/bash
最終看起來:
#!/bin/bash
set -xv
如果這不能為您提供更多日志記錄,請將輸出重定向到腳本中的文件。 所以你可以調試你的腳本。
您還可以增加Apache中的日志記錄。 請查看http://svnbook.red-bean.com/en/1.6/svn.serverconfig.httpd.html#svn.serverconfig.httpd.extra.logging
所以你只能獲得SVN的一個文件,你也可以使用日志級別。
我個人會先嘗試,因為更容易更改腳本。
(對於您的下一個問題,請更具體)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.