svn中hook的使用 一直很少關注 今天在網上看到了這篇文章 而且是很實用的 轉來分享
其實更能說明的是批處理的強大 原文地址:http://blog.csdn.net/qiutaox/archive/2008/11/22/3349899.aspx
原文如下:
下面是我在svn1.5 下經過測試的絕對可用的指令碼,特把正確的指令碼分享給大家,希望能給也需要設定此功能,被一些不正確的指令碼搞的頭大的朋友一些協助。
1、svn用戶端修改日誌功能(且只能修改自己日誌)
找到版本庫中hooks目錄下,將pre-revprop-change.tmpl檔案複製為pre-revprop-change.bat檔案,然後將pre-revprop-change.ba檔案內容改為:
set repos=%1
set rev=%2
set user=%3
set propname=%4
set action=%5
for /f "usebackq" %%k in (`svnlook author %repos% -r %rev%`) do @set var=%%k
set rightUser=0
if "%3" == "%superUser%" set rightUser=1
if "%3" == "%var%" set rightUser=1
if %rightUser% == 0 goto ERROR_USER
goto :SUCCESS_EXIT
:ERROR_USER
echo 只允許使用者修改自己的日誌 >&2
goto ERROR_EXIT
:ERROR_EXIT
exit 1
:SUCCESS_EXIT
exit 0
2、到版本庫中hooks目錄下,將pre-commit.tmpl檔案複製為pre-commit.bat檔案,然後將pre-commit.bat 檔案內容改為:
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 提交必須寫日誌!>&2
exit 1