`
dwangel
  • 浏览: 261878 次
社区版块
存档分类
最新评论

检查svn 提交时log格式的脚本pre-commit

svn 
阅读更多
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


分享到:
评论

相关推荐

    svn hook pre-commit禁止删除文件和强制添加注释

    通过在pre-commit文件查看用户的动作来限制删除文件的动作,通过查看用户输入的log信息长度,限制用户提交log

    SVN钩子 之 pre-commit

    里面包含了pre-commit.bat批处理和pre-commit.exe两种方式

    windows下svn的pre-commit钩子

    用法:将本bat文件(不可改名)存在svn服务器端安装目录\仓库名\hooks下(该目录下有多个*.tmpl文件,包括pre-commit.tmpl即linux下的提交钩子,而pre-commit.bat为windows下的提交钩子),并修改文件中相应目录(共...

    SVN钩子脚本pre-commit实现删除权限控制

    svn是很多企业和个人用的版本控制软件,非常方便。通用的权限控制在auth文件中,...本文就是通过一个钩子脚本,实现用户有新增修改文件之后commit,但是又 不可以删除的权限细化控制,只有制定的某些用户可以做删除动作

    pre-commit.bat

    windows环境svn服务器,提交限制文件大小脚本,pre-commit.bat,限制大小为byte

    VisualSVN的pre-commit文件

    配置VisualSVN时设置pre-commit要求输入说明

    subversion中的pre-commit.bat

    通过这个脚本,svn实现强制提交日志功能。

    pre-commit

    svn提交的脚本, 已经集成svnchecker0.3

    SVN提交时强制添加注释

    SVN提交时强制添加注释 —————————————————————————————————— 如果在windows环境中,则命名为pre-commit.bat并将该文件放在创建的库文件的hooks文件中 ————————————...

    svn提交设置--日志

    1,svn提交时强制填写日志。 2,修改日志只能修改自己的。 压缩包包含两个文件:pre-commit,pre-revprop-change。 更新:解决提示显示的乱码问题。 使用方法:...

    用python脚本处理和分析svn log xml

    本代码实现了用python处理svn log数据(xml格式),把Log的数据转化为一个python的数据结构,方便作更进一步数据挖掘!

    解决SVN:post-commit hook failed (exit code 127) with output:

    (1)在网上看了很多方案,类似于 在 hooks文件的 post-commit 文件中增加 || exit1 exit0;这种方案试过之后并没有解决问题; (2)最终解决方案,找到post-commit 文件的第52行,并把相应内容注释掉,问题得到了...

    svn hook脚本,实现commit提交逻辑检查,评论格式,文件格式逻辑设定

    svn上传管理时,经常需要规定固定的评论格式,还有文件格式限制,本示例实现了上述逻辑,需要的同学可以参考

    Android代码-maven-git-commit-id-plugin

    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

    oscam-1.20-powervu_svn10660-i686-linux-gnu

    maven-svn-revision-number-plugin-1.7.jar

    maven-svn-revision-number-plugin-1.7.jar 资源共享,有需要其他jar包的可以在评论留言,看到后我会陆续上传。

    svn TortoiseSVN 1.14.5 (64-bit)

    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自动提交脚本 For Windows

    SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入

    svn提交日志长度限制脚本

    svn提交日志长度限制脚本,其中svnlook.exe所在路径修改成你实际安装svn server路径即可。

Global site tag (gtag.js) - Google Analytics