UML软件工程组织

 

 

配置Subversion必须填写注释的脚本Hook
 
2008-07-04 来源:网络
 

你是否为了开发人员提交了一大堆内容,但是对修改了什么只字不提? 本文将减轻你的烦恼,当然不可能根除,填写内容的质量是没法检测的.

Subversion提供了一种叫做"Hook"的东西,当然对于开发人员来说这很熟悉的概念了.

Subversion提供的Hook支持多种语言/脚本,例如shell脚本,python,perl,exe等等

我们暂且不管其他步骤的Hook,我们只研究这个提交前的检测,在Subversion中叫做"pre-commit" ,默认Subversion提供了一些hook的模板,位于每个仓库的hooks目录下,打开模板可以看到默认提供了一些功能,按照自己的需要修改即可.

例如我的Subversion服务是用Apache做验证的,那么就需要去掉相关的验证.

为了用户用户,还需要加上自己的一些信息提示,告诉用户为什么不能提交成功.

默认的pre-commit部分内容是这样的:

从pre-commit.tmpl的最上一行(这里没贴出),可以知道这个是shell脚本.

检测的步骤主要包括:

  • 提交的log里面必须包含ascii字符,对于英语国家来说,这足够了,但是对于中文用户来说,这个需要改
  • 没有给用户任何提示信息
  • 利用commit-access-control来检测权限控制,在这里我们不需要了

于是我们开始动手术,总之很简单吧,不过也遇到很多问题,几个主要关键点在于:

  • 提交的log必须要包含非空格字符
  • 报告给用户错误原因

我开始是这样写的:

可惜就是不知道为什么不行,总是提交成功,似乎 exit 1没有被执行.

最后改成了这样,更方便一点了,可以随意添加内容:

把这个文件命名为pre-commit,放在仓库的hooks目录下,文件的拥有者为仓库目录的拥有者,改为可以执行的权限.

然后试试提交吧,写备注和不写备注,是否ok?

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号