Posted on 2011-01-19 17:32
幻海藍夢 閱讀(684)
評論(0) 編輯 收藏 所屬分類:
Linux 、
版本管理 、
配置管理
*自動發郵件腳本
配置post-commit文件 //此文件在commit時會運用到這個腳本
# cd /svndata/test/hooks
# cp post-commit.tmpl post-commit
# vi post-commit
在末尾刪除原來的,添加上以下參數
REPOS="$1"
REV="$2"
/usr/bin/svnnotify --repos-path "$1" --revision "$2" --to windy@xxx.com --handler "HTML::ColorDiff" --with-diff --smtp mail.xxx.com --subject-prefix '[Windy SVN]'
//--to windy@xxx.com為
要通知的郵件地址,我們一般會做個郵件組,這個組內包含了這個項目的所有人,--smtp
mail.xxx.com為你的內部郵件服務器地址,必須使用域名,要內部DNS能夠解析到,可能需要在內部DNS服務器上手動添加主機記錄,
[Windy SVN]必須有SVN字段,否則將收不到郵件,注重格式,此腳本有bugzilla和JIRA系統進行整合的參數。
# chmod a+x post-commit //添加可執行權限給post-commit
*可修改log腳本
配置pre-revprop-change文件 //此文件在show
log中修改log時會運用到這個腳本,得到修改的權限,否則會報錯DAV request failed; it's possible that
the repository's pre-revprop-change hook either failed or is
non-existent. At least one property change failed; repository is
unchanged
# cd /svnroot/test/hooks
# cp pre-revprop-change.tmpl pre-revprop-change
# vi pre-revprop-change
在末尾刪除原來的,添加上以下參數
EPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
if [ "$PROPNAME" = "svn:log" ]; then exit 0; fi
exit 1
# chmod a+x pre-revprop-change //添加可執行權限給pre-revprop-change
*強制寫log腳本
配置pre-commit文件 //此文件在用戶每次更新庫中都必須要求寫log,此文以log最低5個字符為例
# cd /svnroot/test/hooks
# cp pre-commit.tmpl pre-commit
# vi pre-commit
在末尾刪除原來的,添加上以下參數
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
# check that logmessage contains at least 5 alphanumeric characters
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
if [ "$LOGMSG" -lt 5 ];
then
echo -e "\nEmpty log message not allowed. Commit aborted!" 1>&2
exit 1
fi
//[ "$LOGMSG" -lt 5 ] -lt 5這個5是至少為5個字符,請注意。
# chmod a+x pre-commit //添加可執行權限給pre-commit
原文:http://blogold.chinaunix.net/u3/93926/showart_1874564.html