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