在別人的基礎上修改的:
自己在Windows上用VisualSVN搭了個服務器,默認提交代碼是可以不填任何信息,這可不是我所期望的,於是找到了下面的解決方案:
在VisualSVN的管理控制台中可以設置這些規則,這些規則在特定的時機觸發,其中Commit代碼之前檢查是否填寫了log信息,我們可以在pre-commit時進行。
設置方法:
1、打開VisualSVN管理控制台
2、右鍵你要設置的代碼倉庫
3、所有任務-》Manage Hooks……
4、編輯“Pre-commit hook"
其實這個編輯對應的是在你的代碼倉庫目錄下的Hook子目錄生成了一個.cmd的文件,我們自己修改這個文件就可以了,不需要通過界面修改。
在hook目錄有一些模板,但模板用的是linux的命令,把模板的后綴名修改成cmd並不能正確執行,所以我們需要符合Windows的Hook腳本,我測試了兩個,一個是純DOS命令,一個是需要perl,都測試OK,還有一個pytyon的版本我就沒有測試了,具體可以參考我最后列出來的參考文檔。
1、純Windows DOS命令
只需要一個文件就可以:pre-commit.cmd
@echo off
::
:: Stops commits that have empty log messages.
::
@echo off
set svnlook="D:/Program Files/VisualSVN Server/bin/svnlook.exe"
setlocal
rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2
rem check for an empty log message
%svnlook% log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0
:err
echo. 1>&2
echo Your commit has been blocked because you didn't give any log message 1>&2
echo Please write a log message describing the purpose of your changes and 1>&2
echo then try committing again. -- Thank you 1>&2
exit 1