SHELL实现svn必须添加注释后提交

简介:

最近在公司的项目中,因为很多人都参与开发,于是我们毫不犹豫的使用了svn来管理我们的项目,我们也特别强调,在提交代码的时候必须要添加注释,如果不添加注释,代码版本多了,根本搞不清,哪个版本改了什么东西?所以如果加一些注释的话,我们看起来,也方便很多。但是在真正的实际中,很多人都没有添加相关的注释,这里面的原因很多,因此决定通过脚本来控制这一过程,也就是实现必须要通过添加描述信息才能顺利的提交你的代码!。所以在提交的时候,我会强制要求写注释。如果对svn的安装配置不怎么了解,请参考:linux svn安装和配置,不结合apache

Java代码   收藏代码
  1. #cd /home/administrator/www/svntest svntest是一个代码仓库  
  2. #cp ./hooks/pre-commit.tmpl ./hooks/pre-commit 将代码仓库根目录下,hooks文件夹中的pre-commit.tmpl文件重命名为pre-commit  
  3. #chmod +x ./hooks/pre-commit  
  4. #vi ./hooks/pre-commit  

 修改前的SHELL脚本:

Java代码   收藏代码
  1. REPOS="$1"  
  2. TXN="$2"  
  3.   
  4. # Make sure that the log message contains some text.  
  5. SVNLOOK=/usr/bin/svnlook  
  6. $SVNLOOK log -t "$TXN" "$REPOS" | \  
  7.  grep "[a-zA-Z0-9]" > /dev/null || exit 1  
  8.   
  9. # Exit on all errors.  
  10. set -e  
  11.   
  12. # Check that the author of this commit has the rights to perform  
  13. # the commit on the files and directories being modified.  
  14. "$REPOS"/hooks/commit-access-control.pl "$REPOS" $TXN \  
  15.  "$REPOS"/hooks/commit-access-control.cfg  
  16.   
  17. # All checks passed, so allow the commit.  
  18. exit 0  

 修改后的脚本:

Java代码   收藏代码
  1. REPOS="$1"  
  2. TXN="$2"  
  3.   
  4. # Make sure that the log message contains some text.  
  5. SVNLOOK=/usr/bin/svnlook  
  6.   
  7. LOGMSG=`$SVNLOOK log -t $TXN $REPOS | wc -m`       //定义个变量,注意这里不是单引号  
  8.   
  9. #$SVNLOOK log -t "$TXN" "$REPOS" | \               //把这一行和下面的一行注释掉  
  10. # grep "[a-zA-Z0-9]" > /dev/null || exit 1  
  11.   
  12. echo $LOGMSG > /home/administrator/www/aaa.txt     //为了测试变量用的,查看$LOGMSG有没有值,最后要注释掉  
  13. if [ "$LOGMSG" -lt 48 ]                            //这里为什么是48呢,一个汉字对应16个字符  
  14. then  
  15.  echo "\n至少输入4个汉字" >&2                        //必须填四个汉字  
  16.  exit 1  
  17. fi  
  18.   
  19. # Exit on all errors.  
  20. #set -e  
  21.   
  22. # Check that the author of this commit has the rights to perform  
  23. # the commit on the files and directories being modified.  
  24. #"$REPOS"/hooks/commit-access-control.pl "$REPOS" $TXN \    //把这一行和下面的一行注释掉。  
  25. #  "$REPOS"/hooks/commit-access-control.cfg  
  26.   
  27. # All checks passed, so allow the commit.  
  28. exit 0  

 保存退出后!执行提交操作,效果图如下:

相关文章
Mgo
|
Shell Go
go调用shell命令两种方式实现(有无返回值)
go调用shell命令两种方式实现(有无返回值)
Mgo
1860 1
|
Shell Docker 容器
利用shell脚本[带注释的]部署单节点多实例es集群(docker版)
利用shell脚本[带注释的]部署单节点多实例es集群(docker版)
196 0
|
监控 Shell
使用 Shell 脚本监控主机,实现主机性能监控
使用 Shell 脚本监控主机,实现主机性能监控
604 0
使用 Shell 脚本监控主机,实现主机性能监控
|
算法 搜索推荐 Shell
python实现【希尔排序】(Shell Sort)
python实现【希尔排序】(Shell Sort)
python实现【希尔排序】(Shell Sort)
|
Shell 数据库
shell脚本循环查询数据库实现数据输出到csv
shell脚本循环查询数据库实现数据输出到csv
652 0
|
运维 Linux Shell
总结:shell命令统计字符串长度的4种实现方式
总结:shell命令统计字符串长度的4种实现方式
总结:shell命令统计字符串长度的4种实现方式
|
JavaScript 前端开发 Shell
能用js实现的最终用js实现,Shell脚本也不例外
能用js实现的最终用js实现,Shell脚本也不例外
能用js实现的最终用js实现,Shell脚本也不例外
|
运维 关系型数据库 MySQL
运维必看--Shell脚本实现LAMP自动部署!
本篇内容记录了Shell脚本实现LAMP自动部署!
206 0
运维必看--Shell脚本实现LAMP自动部署!
|
运维 监控 Java
shell脚本配合zabbix实现tomcat的故障自愈
shell脚本配合zabbix实现tomcat的故障自愈 1.背景及实现方式方法 Tomcat运行JAVA类的程序代码经常会导致内存溢出,往往都是收到告警后再去处理,收到报警再处理就会拖延故障解决的时间,因此就需要靠故障自愈的机制来解决人为干预的成本。
548 0
shell脚本配合zabbix实现tomcat的故障自愈
Daz
|
Unix Linux Shell
GNU/Linux下实现一个简易shell,支持多重管道
简易shell,支持多重管道
Daz
758 0