svn提交时强制添加注释

负责前端开发的同事提出需求,svn提交时必须添加注释,否则有可能不知道代码是谁提交的。

搭建svn服务器时,用的是CollabNetSubversionEdge。添加用户,管理工程权限都挺方便。让某个工程在提交时添加注释,需要在svn的hooks目录下,新建一个pre-commit的文件并给它可执行权限。

代码如下:

#!/bin/bash

REPOS="$1"

TXN="$2"

SVNLOOK=/local/csvn/bin/svnlook

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

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

        echo -e "\n [Commit]log message cann‘t be empty! YOU MUST input more than 10 chars as comment" 1>&2

exit 1

fi

根据系统自带的pre-commit.teml中的内容弄清楚这段脚本的含义:

The pre-commit hook is invoked before a Subversion txn is

# committed.  Subversion runs this hook by invoking a program

# (script, executable, binary, etc.) named ‘pre-commit‘ (for which

# this file is a template), with the following ordered arguments:

#

#   [1] REPOS-PATH   (the path to this repository)

#   [2] TXN-NAME     (the name of the txn about to be committed)

#

#   [STDIN] LOCK-TOKENS ** the lock tokens are passed via STDIN.

#

#   If STDIN contains the line "LOCK-TOKENS:\n" (the "\n" denotes a

#   single newline), the lines following it are the lock tokens for

#   this commit.  The end of the list is marked by a line containing

#   only a newline character.

脚本命令解释:

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 755 pre-commit ,给 pre-commit 文件增加可执行权限。

时间: 2024-11-03 03:47:39

svn提交时强制添加注释的相关文章

svn提交时强制添加注释 (转)

SVN提交时,如果没有注释,在查阅历史时,会非常不方便.因此我们需要有一个让程序员提交代码时,强制添加注释的规则.下面看看在SVN中怎么实现. 1. 推荐使用VisualSVN作为服务端(免费下载地址:http://www.visualsvn.com/).安装完毕后,打开VisualSVN Server管理器,在版本库上点击"属性",选择"Hooks"选项,选中"Pre-commit hook"后,点击"Edit".(如下图)

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

windows版本: 1.新建一个名为pre-commit.bat的文件并将该文件放在创建的库文件的hooks文件夹中 2.pre-commit.bat文件的内容如下: @echo off set SVN_BINDIR="C:\ProgramFiles\Subversion" set SVNLOOK="E:\freescm\freescm\SVN\bin\svnlook.exe" setlocal set REPOS=%1 set TXN=%2 rem check

如何让SVN提交时候强制添加注释

一.右击需要设置的库,依次选择"所有任务","Manage Hooks" 二.选中Pre-commit hook,点击"Edit",或者直接双击Pre-commit hook 三.打开Pre-commit hook后,添加代码 @echo offsetlocalset REPOS=%1set TXN=%2rem check that logmessage contains at least 40 charactersrem ...........

svn提交时强制注释

svn提交时强制注释 不少开发员提交修改的时候都不写注释,导致查看历史时很费劲,也不太符合规范.有的公司要求每次提交修改时都写上bug号或者任务描述,那么如何在工具上防止开发员们不写注释呢?  利用svn的pre-commit钩子可简单实现此要求.进入仓库project1/hooks目录,找到pre-commit.tmpl文件,重命名,去掉后缀.tmpl. 编辑pre-commit文件:(Linux系统和windows系统脚本内容见1和2)1.Linux系统 方法1: 将: $SVNLOOK l

Linux停SVN提交时强制写日志

Linux下SVN提交时强制写日志 SVN默认可以不写注释提交,有时候可能忘记写注释,有的人也没有写注释的习惯,导致翻看history的时候都不知道做了哪些更改,可以依照以下步骤修改SVN配置,强制提交SVN前写注释 步骤: 1.进入svn/code/hooks目录,在svn版本库的hooks文件夹下面,复制模版pre-commit.tmplcp pre-commit.tmpl pre-commitchmod +x pre-commit 2.编辑pre-commit文件:将:$SVNLOOK l

SVN提交时强制填写备注

很多程序员不爱写注释,特别是svn提交的时候,文件做了什么修改都没有一个简单的备注,往往都是直接提交,这样是非常不利于团队开发的.所以就有了svn提交的时候,强制修改文件的备注. 步骤如下: 1.先找到对应项目的svn版本库hooks sudo find / -name hooks 2.假设进入test_wx项目下面的svn版本库 复制一份pre-commit.tmpl文件 cp pre-commit.tmpl  pre-commit 修改pre-commit的权限 chmod +x pre-c

svn文件提交时强制写注释

这个操作需要修改版本库中的一个钩子文件,在你创建的版本库中有一个hooks文件夹,初始的时候其中有一个文件叫pre-commit.tmpl 在windows下将其修改为pre-commit.bat,在linux下将其改为pre-commit linux下(文件名是: pre-commit,放到版本库的/hooks目录下)========================================================== #!/bin/shREPOS="$1"TXN=&q

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

所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念.当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就 会去执行对应hook点的脚本. SVN版本库目录下有hooks目录,里面有很多.tmpl的文件.这些文件用以定义某些动作触发的 hook脚本.默认状态下,这些脚本的后缀都是.tmpl,是没有起作用的.相当于Netfilter的各个hook点没有注册hook函数.所以,当用 户执行相关维护代码动作的时候,也不会触发hook脚本.

关于SVNcommit时强制写注释方法

关于SVNcommit时强制写注释方法 一.摘要 场景: 在这次开发项目过程中,团队中总是有人忘记添加注释. 问题: 1:其他成员不知道你提交是什么代码, 给回滚操作带来很多不必要的麻烦. 2:这个工作需要有一个人天天提醒大家在提交代码的时候加入注释. 3:这个是重复的,定时的,固定的 工作. 思路: 1:我们可以把这项工作交给电脑来完成岂不是更好. 2:提交代码的时候电脑自动提醒. 3:代码注释字数限制.以下为最少5个字为例子. 二.本文大纲 a.摘要. b.本文大纲. c.第一步创建SVN版