TXN="$2" SVNLOOK=/opt/CollabNet_Subversion/bin/svnlook LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c) if [ "$LOGMSG" -lt 10 ]; then echo -e "\n 提交文件时必须添加注释,提交中止."1>&2 exit 1 命令 解释 LOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c) 将提交的日志 信息作为便来那个输入 之后,将grep英文和数字的结果作为变量 if [ "$LOGMSG" -lt 10 ]; 传入变量来判断变量长度是否小于10 -eq 等于号  -gt 大于号   -lt小于号 1. echo 错误提示信息的时候 必须重定向 到 stderr ,即 1>&2 2. pre-commit 文件拷贝到 hooks 目录之后,需要  chmod 0755 pre-commit ,给 pre-commit 文件增加可执行权限(或者至少把文件owner改为 svn 服务 运行用户并加上owner的x权限) chmod +x pre-commit

注:更多请参考,

ubuntu linux下关于svn提交的时候强制写注释

SVN的Hooks功能--强制添加注释

Linux下如何设置SVN提交时强制添加注释

不少开发员提交修改的时候都不写注释,导致查看历史时很费劲,也不太符合规范。有的公司要求每次提交修改时都写上bug号或者任务描述,那么如何在工具上防止开发员们不写注释呢?      Linux版本:1、在svn的hooks目录下新建一个名为pre-commit的文件并为其添加执行权限2、pre-commit文件的内容如下:#!/bin/shREPOS= 2. svn admin create data 3. svn serve -d -r /home/huangz/data/ svn /data --listen-port 8999 4.在本机: svn co file:///home/huangz/data/ svn /data,远程 svn co svn ://192.168.1.191:8
cd repository/ hook s,找到pre-commit.tmpl文件,去掉后缀.tmpl, 编辑pre-commit文件: 1. windows: 重命名为pre-commit.bat Java代码 @echo off   setlocal   set REPOS=%1  set TXN=%2  rem check that logmessage c
SVN hook s介绍 Hook s 钩子,主要实现的 功能 就是在特定事件发生之前或者之后自动执行事先定义好的脚本代码来实现某些 功能 ,类似于JS中的监听事件、MySQL中的触发器、Django中的signals信号等 大多数开发语言都可以用来编写 hook s脚本,常用的如windows下的bat、vb,l...
公司的windows服务器下, svn 服务需要 添加 强制 注释 hook ,按照网上格式,做了个bat脚本,具体内容如下: setlocal set SVN _BINDIR=""C:\Program Files\Subversion Server" set REPOS=%1 set TXN=%2 rem check that logmessage contains at least 10 chara
配置了台 svn 服务器,用来保存公司项目的代码,同时 svn 服务器也是一台web服务器。因此希望当我本地代码commit到 svn 服务器时,能够触发 svn 服务器的钩子 hook s/post-commit将新版本的代码自动update到站点目录上去。 其实这样做,感觉有点傻。还不如直接把 svn 版本库指定到web服务器的站点目录下。而且这样, svn 库一改,站点目录也马上就更改了。 svn 目录:/ho