NO.158 集成禅道和svn

Stella981
• 阅读 527

说明:svn集成功能配置会比较复杂,我们会尽量通过文档来帮助大家配置成功!如果实在配置不成功的,可以考虑找我们做收费技术支持。

禅道于2.2版本内置了svn集成功能,把禅道和用户代码进行有效关联,方便用户查看。这篇文章将给大家讲述如何配置禅道集成svn。

一、subversion集成机制说明

subversion集成的基本机制是:分析提交代码时的注释 => 得出相应的story, task, bugID => 写入到禅道的数据库。

实现上述功能有两个方案,一个方案是采用svn自带的钩子机制,当有代码提交的时候,触发一个钩子脚本,然后分析注释,得出相应的bug, story或者task的id号,然后调用禅道的api,将相关的记录写入数据库。还有一个方案是通过svn客户端软件的log命令,来获得所有的提交记录,然后分析,得出相应的id,写入数据库。

上述两个方案各有各自的优缺点,我们最终是选择了第二个方案。因为第二个方案调试比较好调试,部署也相对方便,同时可以解析之前的所有记录,有比较好的灵活性。

二、在禅道所在机器上面部署svn命令行客户端

svn命令行客户端是指subversion自带的svn命令。windows下面是svn.exe,linux下面是没有后缀的svn。

禅道所在的机器可以和subversion机器分开,不在一台机器上面。

如果是linux机器,需要安装svn的客户端。rhel,centos可以用yum安装subversion, debian下面可以用apt-get install。

如果最新下载的windows一键安装包,里面已经内置了svn.exe的客户端。在\xampp\silksvn目录下面。

如果在windows下面自己安装,可以考虑下载slilksvn的客户端软件,安装。

三、配置禅道关于subversion的参数

3.1 代码位置

svn模块的配置文件位于zentao/module/svn/config.php。您可以直接修改这个文件,但建议您将改动保存到svn/ext/config/svn.php中。这样将来我们升级,就不会覆盖您的配置文件。

3.2 配置内容

关于subversion参数的设置,一共有下面几个概念:

1.  svn客户端命令的位置。

2.  库(repo): 可以配置多个库。

3.  库的用户名和参数。

下面让我们用实际的例子来说明。

3.2.1 如下图,找到图中红框标志的位置

NO.158 集成禅道和svn

3.2.2 修改代码

写法如下面例子所示

NO.158 集成禅道和svn

$config->svn->client 这个是用来存储svn客户端执行文件svn.exe路径。

$config->svn->repos[$i]['path'] 这个是用来存储svn代码路径的;

$config->svn->repos[$i]['username'] 这个是用来存储svn登录用户名的; 如果不需要登录,可以保持为空。

$config->svn->repos[$i]['password'] 这个是用来存储svn登录密码的。

3.3 配置多个库

3.3.1 同上,在同一个文件里找到如下代码

NO.158 集成禅道和svn

3.3.2 修改代码

①将代码中的“/*”和”*/“删除,其余修改同上,注意:$i ++ 不可修改。

②如果还有svn库,复制此段代码,进行同样的配置即可。

四、代码提交注释格式

开发者在提交svn的时候,需要在备注里面注明此次修改相关的需求,或者任务,或者bug的id。比如下面的格式:

bug#123,234, 1234,也可以是bug:123,234 1234,id列表之间,用逗号和空格都可以。

story#123 task#123

bug, story, task是必须标注的。:)

五、执行svn同步命令

5.1 参考《初始化管理脚本》这篇文章初始化命令行的脚本。

5.2 进入到zentao/bin/目录下面,执行syncsvn.bat或者syncsvn.sh脚本。

5.3  程序运行的效果图:

NO.158 集成禅道和svn

5.4 查看相应的bug:

NO.158 集成禅道和svn

六、部署定时任务

上述命令部署好之后,将该命令加入定时任务就好了。比如可以5分钟执行一次。

windows下面使用计划任务,linux下面使用crontab。

七、注意事项

建议不要使用https或者ssh协议来访问,因为牵扯到https和ssh证书的验证交互问题,操作起来会比较麻烦。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
2年前
NO.159 集成禅道和git
禅道(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.zentao.net%2F%3Fu%3Dpxz%26f%3Dosc%26a%3Dblog)从5.0版本开始内置了git集成功能,把禅道的任务、Bug等与代码进行关联,方便用户查看。下面向大家讲解如何配置禅道集成git。
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
NO.112 禅道使用分享第十八期:工作效率明显提高。
关于禅道使用经验分享禅道使用经验分享,欢迎大家一起来探讨关于禅道项目管理软件(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.zentao.net%2F%3Fu%3Dpanxianzhi%26f%3Dos%26a%3Dblog)使用方面的问题。我们广泛的收集对禅
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这