pre-commit文件放到 SVN repository下hooks目录里
需要设为可执行
Linux环境下的
#!/bin/sh
REPOS="$1"
TXN="$2"
TYPE="$3"
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
if test -z "$TYPE" ; then
TYPE="-t"
fi
#$SVNLOOK log -t "$TXN" "$REPOS" | \
# grep "[a-zA-Z0-9]" > /dev/null || exit 1
look() {
$SVNLOOK "$@" "$TYPE" "$TXN" "$REPOS"
}
LOGMSG=`look log`
if echo $LOGMSG | grep '.' > /dev/null; then
NOT_EMPTY=1
else
echo "Message must be filled">&2
exit -2
fi
#echo $REPOS >&2
#look changed>&2
#exit 1
IN_BRANCH=0
#echo $REPOS | grep -iE "^/var/www/svn/test/branches"
CHANGES=`look changed`
#echo $CHANGES >&2
for f in $CHANGES ;do
#echo $f>&2
echo $f | grep -iE "^branches/br130609" > /dev/null
if [ $? -eq 0 ]; then
IN_BRANCH=1
fi
done
#echo $IN_BRANCH>&2
#exit 1
if [ $IN_BRANCH -eq 1 ]; then
echo $LOGMSG | grep -iE "^(new|add|improve|refactor|ci|fix|modify)\s*:\s*[0-9\.]+[mh]\s*:.+" >/dev/null
CHECKRE1=$?
echo $LOGMSG | grep -iE "^(bug|bugfix)\s*:\s*[0-9\.][mh]\s*:\s*((BUMBLEBEE-[0-9]+)+,*)+\s*:.*" >/dev/null
CHECKRE2=$?
if [ $CHECKRE1 -ne 0 ] && [ $CHECKRE2 -ne 0 ]; then
echo " Wrong format, please write according to:http://wiki.cntnsoft.int/pages/viewpage.action?pageId=20643842 ">&2
exit -3
fi
fi
if look changed | grep '^A ' | sed -r 's#^A +##' | grep -iE '\.(ncb|opt|plg|suo|aps|bsc|idb|obj|pcc|pch|pdb|sbr|exe|tmp|ilk|o|so|a|class|zip|log)$|~$|^(Debug|Release|Debug_Ts|Release_Ts|Thumbs\.db)$|(^\.)' 1>&2 ; then
echo "Including not permitted file: ncb|opt|plg|suo|aps|bsc|idb|obj|pcc|pch|pdb|sbr|exe|tmp|ilk|o|so|a|class|zip|log">&2
exit 1
fi
# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
#commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1
# All checks passed, so allow the commit.
exit 0
分享到:
相关推荐
通过在pre-commit文件查看用户的动作来限制删除文件的动作,通过查看用户输入的log信息长度,限制用户提交log
里面包含了pre-commit.bat批处理和pre-commit.exe两种方式
用法:将本bat文件(不可改名)存在svn服务器端安装目录\仓库名\hooks下(该目录下有多个*.tmpl文件,包括pre-commit.tmpl即linux下的提交钩子,而pre-commit.bat为windows下的提交钩子),并修改文件中相应目录(共...
svn是很多企业和个人用的版本控制软件,非常方便。通用的权限控制在auth文件中,...本文就是通过一个钩子脚本,实现用户有新增修改文件之后commit,但是又 不可以删除的权限细化控制,只有制定的某些用户可以做删除动作
windows环境svn服务器,提交限制文件大小脚本,pre-commit.bat,限制大小为byte
配置VisualSVN时设置pre-commit要求输入说明
通过这个脚本,svn实现强制提交日志功能。
svn提交的脚本, 已经集成svnchecker0.3
SVN提交时强制添加注释 —————————————————————————————————— 如果在windows环境中,则命名为pre-commit.bat并将该文件放在创建的库文件的hooks文件中 ————————————...
1,svn提交时强制填写日志。 2,修改日志只能修改自己的。 压缩包包含两个文件:pre-commit,pre-revprop-change。 更新:解决提示显示的乱码问题。 使用方法:...
本代码实现了用python处理svn log数据(xml格式),把Log的数据转化为一个python的数据结构,方便作更进一步数据挖掘!
(1)在网上看了很多方案,类似于 在 hooks文件的 post-commit 文件中增加 || exit1 exit0;这种方案试过之后并没有解决问题; (2)最终解决方案,找到post-commit 文件的第52行,并把相应内容注释掉,问题得到了...
svn上传管理时,经常需要规定固定的评论格式,还有文件格式限制,本示例实现了上述逻辑,需要的同学可以参考
maven git commit id plugin git-commit-id-plugin is a plugin quite similar to ...I had to quickly develop an git version of such a plugin. For those who don't know the previous plugins, it basically ...
oscam-1.20-powervu_svn10660-i686-linux-gnu
maven-svn-revision-number-plugin-1.7.jar 资源共享,有需要其他jar包的可以在评论留言,看到后我会陆续上传。
svn TortoiseSVN 1.14.5 (64-bit) svn客户端svn TortoiseSVN 1.14.5 (64-bit) svn客户端svn TortoiseSVN 1.14.5 (64-bit) svn客户端svn TortoiseSVN 1.14.5 (64-bit) svn客户端svn TortoiseSVN 1.14.5 (64-bit) svn...
SVN提交代码时格式填写,入门级教程,大家可以参考下,谢谢!
SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入
svn提交日志长度限制脚本,其中svnlook.exe所在路径修改成你实际安装svn server路径即可。