簡體   English   中英

Svn預提交掛鈎沒有被執行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM