1。強(qiáng)制寫日志
在每次提交的時(shí)候?qū)懨魈峤坏哪康氖且粋€(gè)很好的習(xí)慣,Subversion默認(rèn)沒有提供,但是可以通過鉤子實(shí)現(xiàn):將下面的代碼存為放到版本庫的hooks目錄下即可,當(dāng)你不寫日志提交的話就會(huì)報(bào)告錯(cuò)誤。
文件名:pre-commit-log.bat
@echo off
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 5 characters
svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo Empty log message not allowed. Commit aborted! 1>&2
exit 1
2。可以修改歷史日志
歷史上的日志寫的不好,我們希望修改,默認(rèn)對Subversion是不允許的,并且會(huì)提示需要?jiǎng)?chuàng)建pre-revprop-change鉤子。最簡單的方式是創(chuàng)建一個(gè)空白的pre-revprop-change.bat文件放到版本庫的hooks目錄下,但是這種方式不夠嚴(yán)格,用戶具備了修改所有屬性的權(quán)利,例如修改作者的權(quán)利(可以提交垃圾然后栽贓嫁禍了)。所以要限制用戶只能修改日志,所以有了下面的代碼,將其存為pre-revprop-change.bat放到版本庫的hooks目錄下即可。
文件名:pre-revprop-change.bat
REM SVN pre-revprop-change hook allows edit of logmessages from TSVN
setlocal
set REPOS=%1
set REV=%2
set USER=%3
set PROPNAME=%4
set ACTION=%5
if not "%ACTION%"=="M" goto refuse
if not "%PROPNAME%"=="svn:log" goto refuse
goto OK
:refuse
echo Cann't set %PROPNAME%/%ACTION%, only svn:log is allowed 1>&2
endlocal
exit 1
:OK
endlocal
exit 0