svn提交的时候必须添加注释且字数大于指定数字

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2017-11-30 09:24
  • 3576人已阅读
简介 环境:Linux版本:svnserve,version1.6.11在SVN_HOME的hooks目录下新创建一个文件,其名字为pre-commit。凯哥的SVN_HOME为:/opt/svn/kaigejava。所以对应创建文件目录如下:在pre-commit文件中输入如下脚本:#!/bin/shREPOS="$1"TXN="$2"SVNLOOK=/usr/

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

环境:Linux

版本:svnserve, version 1.6.11

在SVN_HOME的hooks目录下新创建一个文件,其名字为pre-commit。

凯哥的SVN_HOME为:/opt/svn/kaigejava。所以对应创建文件目录如下:




在pre-commit文件中输入如下脚本:

#!/bin/sh

REPOS="$1"

TXN="$2"

SVNLOOK=/usr/bin/svnlook #这里根据自己实际情况填写

LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c)

if [ "$LOGMSG" -lt 10 ]; then

echo -e "\n 注释不能为空,且不能少于十个字符!提交中止.""请添加注释后,重新提交">&2

exit 1

fi

使用文本编辑器就可以打开该文件。

脚本命令介绍:

SVNLOOK:指定自己的svnlook所在的目录位置

LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c):

$SVNLOOK log -t "$TXN" "$REPOS":获取svn提交的日志记录

grep "[a-zA-Z0-9]":这个正则意思是大小写字母及数字

if [ "$LOGMSG" -lt 10 ]; then:判断 如果字符小于10 。

-lt:使用的是转移后的小于号

-eq:等于号

-gt:大于号

echo -e "\n 注释不能为空,且不能少于十个字符!提交中止.""请添加注释后,重新提交">&2:当if条件不成立的时候,显示错误信息

需要注意:在使用 echo -e 的时候显示错误信息的时候,必须重定向到指定的str中。如本例中"请添加注释后,重新提交">&2。

最重要的:

给给文件赋权。不然没法执行的。最简单的,添加执行权限:chmod +x pre-commit。

进行测试:

通过svn客户端连接后。新建文件:


将文件添加到SVN中:


提交到SVN中:


不添加注释或注释小于10个字符的,可以用看到错误信息如下:



添加注释大鱼10个字符的:


再次提交:


提交成功。完成。

需要注意第二:在创建新项目的时候,需要把该文件复制到对应姓名的hooks目录下,并赋予执行权限。

总结:

1:pre-commit文件是在SVN_HOEM下的hooks目录中

2:脚本编写时候:SVNLOOK的值要根据自己实际情况填写

3:一定要记得赋权,执行权限



TopTop