SVN容許修改日誌

1。強制寫日誌
在每次提交的時候寫明提交的目的是一個很好的習慣,Subversion默認沒有提供,可是能夠經過鉤子實現:將下面的代碼存爲放到版本庫的hooks目錄下便可,當你不寫日誌提交的話就會報告錯誤。
文件名: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 1html

2。能夠修改歷史日誌
歷史上的日誌寫的很差,咱們但願修改,默認對Subversion是不容許的,而且會提示須要建立pre-revprop-change鉤子。最簡單的方式是建立一個空白的pre-revprop-change.bat文件放到版本庫的hooks目錄下,可是這種方式不夠嚴格,用戶具有了修改全部屬性的權利,例如修改做者的權利(能夠提交垃圾而後栽贓嫁禍了)。因此要限制用戶只能修改日誌,因此有了下面的代碼,將其存爲pre-revprop-change.bat放到版本庫的hooks目錄下便可。
文件名:pre-revprop-change.bat
REM SVN pre-revprop-change hook allows edit of logmessages from TSVNsvn

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 OKhtm

:refuse
echo Cann't set %PROPNAME%/%ACTION%, only svn:log is allowed 1>&2
endlocal
exit 1blog

:OK
endlocal
exit 0rem

 

 

 

摘自:http://www.cnblogs.com/greatqn/articles/1272769.htmlget

 

版本庫生成後,hooks目錄下就存在一些鉤子腳本的模板,用戶能夠做爲參考。把pre-revprop-change.tmpl複製爲pre-revprop-change.bat,再修改裏面的腳本,鉤子就設置好了。it

 

for /f "usebackq" %%k in (`svnlook author %1 -r%2`) do @set var=%%kio

if "%3" == "%var%" goto test
if "%3" == "li"    goto test
exit 1鉤子

:test
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1


 

只容許用戶修改本身的svn日誌的鉤子腳本

相關文章
相關標籤/搜索