SVN與TortoiseSVN修改日志和強制寫日志實現詳解


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服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM