1,強制寫日志
強制設定commit時寫一定長度的日志的兩種方法:
1.在客戶端配置
使用客戶端工具:TortoiseSVN
在工作副本目錄上,鼠標右鍵,TSVN,選屬性,點增加
再出現的下拉條中選tsvn:logminsize
然后設定必須輸入的字節數就可以
2.在服務器端配置
在庫的hooks目錄下編寫腳本(其實就是批處理文件)文件:pre-commit.bat
內容為:
@echo off
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 10 characters
"D:\Program Files\VisualSVN Server\bin/svnlook" log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo 提交必須寫10個字以上的日志!>&2
exit 1
想修改限制長度只需要增加或減少".............................."中點的數量。
總結:兩種方法都可以,推薦用第二種方法,這才能起到強制的作用。第一種辦法誰都可以改,強制不了,只能靠自覺。
注意:" D:\Program Files\VisualSVN Server\bin/svnlook "根據自己實際的安裝路徑,找svn的svnlook.exe文件的位置,使用絕對路徑。
修改完重啟SVN服務
2、允許修改歷史日志的方法
默認是不允許修改的。
在版本庫的hooks目錄下加入一個批處理文件:pre-revprop-change.bat
@ECHO OFFset 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
然后用TortoiseSVN->顯示日志->選擇待修改日志->右鍵:編輯日志信息。
但存在一個問題:強制設定commit時寫一定長度的日志功能失去。
修改完重啟SVN服務