svn 要求強制寫日誌

2022-03-19 12:31:43 字數 1739 閱讀 3113

下面是我在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

3.linux

pre-commit.tmpl,然後更名pre-commit並加上執行許可權:

#!/bin/sh

repos="

$1"txn="$2

"res="

ok"#make sure that the log message contains some text.

svnlook=//

subversion

/bin

/svnlook

$svnlook

log-t "

$txn""

$repos"|

egrep 

"[^[:space:]]+

">/

dev/

null 

||unset res

if[ 

"$res"!=

"ok"]

then

echo 

"you must input some comments for you commit

">&

2exit1fi

#all checks passed, so allow the commit.

exit

0

Linux停SVN提交時強制寫日誌

linux下svn提交時強制寫日誌 svn預設可以不寫注釋提交,有時候可能忘記寫注釋,有的人也沒有寫注釋的習慣,導致翻看history的時候都不知道做了哪些更改,可以依照以下步驟修改svn配置,強制提交svn前寫注釋 步驟 1.進入svn code hooks目錄,在svn版本庫的hooks資料夾下...

Linux下SVN提交時強制寫日誌問題

網上找到的都是這個做法,但是我按著這個步驟改了之後根本不管用,不寫注釋還是照樣能提交 進入倉庫project hooks目錄,找到pre commit.tmpl檔案,重新命名為pre commit。編輯pre commit檔案 將 svnlook log t txn repos grep a za ...

SVN Linux 提交時強制寫日誌

進入svn code hooks目錄,在svn版本庫的hooks資料夾下面,複製模版pre commit.tmpl cp pre commit.tmpl pre commit chmod x pre commit 將 svnlook log t txn repos grep a za z0 9 de...