1 禅道介绍
1.1 关于禅道项目管理软件
1.2 禅道介绍PPT下载
1.3 如何获得支持
1.4 关注我们
2 安装禅道
2.1 选择适合您的安装方法
2.2 使用云禅道在线项目管理服务!
2.3 windows用一键安装包安装(推荐)
2.4 linux用一键安装包
2.5 禅道一键安装包里安装蝉知和然之
2.6 linux下用lampp集成包安装
2.7 使用源码包安装(各系统通用)
2.8 禅道虚拟机运行环境安装(virtualbox)
2.9 华芸NAS在线安装
3 升级禅道
3.1 选择和自己环境对应的升级方式
3.2 通过源代码方式升级(通用)
3.3 windows一键安装包的升级
3.4 linux一键安装包升级
4 创建分组和用户
4.1 建立部门结构
4.2 添加一个帐号
4.3 批量维护帐号
4.4 设置分组,建立权限体系
5 最简使用
5.1 使用禅道来进行项目任务管理
5.2 只使用禅道来做bug管理
5.3 只使用禅道来进行产品管理
5.4 个人使用禅道来做事务跟踪管理
6 基本使用
6.1 禅道使用的基本流程和产品、研发、测试之间的三权分立
6.2 敏捷开发及scrum简介
6.3 禅道和scrum的对应关系
6.4 禅道的新手教程
6.5 创建第一个产品
6.6 添加第一个需求
6.7 开始第一个项目
6.8 确定项目要完成的需求列表
6.9 为需求分解任务
6.10 提交bug
6.11 视频教程:第一个演示项目
6.12 维护联系人
6.13 禅道的自定义功能
6.14 导入excel、csv参考文档
6.15 文档管理
6.16 工作方式的切换
6.17 操作获取积分功能
6.18 自定义必填项功能
7 进阶使用
7.1 使用流程
7.1.1 禅道使用流程图解
7.2 个人管理
7.2.1 使用待办进行个人事务管理
7.2.2 关注需要自己处理的任务、需求、bug
7.2.3 通过我的档案查看或者修改个人信息
7.2.4 视频教程:禅道使用之个人篇
7.3 产品经理篇
7.3.1 维护产品
7.3.2 维护产品线
7.3.3 创建和评审需求
7.3.4 变更和评审需求
7.3.5 需求的状态和研发阶段
7.3.6 需求的注意事项
7.3.7 维护产品模块
7.3.8 建立发布计划
7.3.9 建立发布
7.3.10 路线图
7.3.11 文档管理
7.3.12 主持产品会议
7.3.13 参与项目管理、演示和总结
7.3.14 需求的基本统计报表
7.3.15 视频教程:禅道使用之产品经理篇
7.4 项目经理篇
7.4.1 建立项目
7.4.2 组建项目团队
7.4.3 确定项目要完成的需求列表
7.4.4 组织进行任务分解
7.4.5 召开每天的站立会议
7.4.6 通过燃尽图了解项目的进展
7.4.7 通过各种列表的各种功能了解项目进展
7.4.8 召开演示会议和总结会议
7.4.9 项目任务基本的报表统计
7.4.10 视频教程:禅道使用之项目经理篇
7.5 开发团队篇
7.5.1 参加项目计划会议,分解任务
7.5.2 领取任务,并每天更新任务
7.5.3 通过看板和树状图查看任务
7.5.4 创建版本
7.5.5 申请测试
7.5.6 解决bug
7.5.7 文档管理
7.5.8 确认bug
7.5.9 视频教程:禅道使用之开发团队篇
7.6 测试团队篇
7.6.1 维护bug视图模块
7.6.2 提交bug
7.6.3 验证bug,关闭
7.6.4 激活bug
7.6.5 找到自己需要的bug
7.6.6 维护测试用例视图
7.6.7 创建测试用例
7.6.8 测试套件、报告和公共用例库的维护
7.6.9 管理测试任务
7.6.10 执行用例,并提交bug
7.6.11 查看报表统计
7.6.12 视频教程:禅道使用之测试团队篇
8 维护配置
8.1 维护禅道
8.1.1 初始化管理脚本
8.1.2 备份禅道
8.1.3 恢复删除的资源
8.1.4 如何更新燃尽图
8.1.5 一键安装包如何实现mysql异机连接
8.2 配置禅道
8.2.1 设置是否允许匿名访问
8.2.2 如何配置email发信
8.2.3 禅道云发信
8.2.4 如何成为超级管理员
8.2.5 配置禅道系统为静态访问
8.2.6 去掉禅道访问地址中的zentao
8.2.7 集成禅道和svn
8.2.8 集成禅道和git
8.2.9 集成webhook
9 定制开发
9.1 二次开发机制
9.2 禅道的目录结构
9.3 找到要修改的文件
9.4 禅道的数据库结构
9.5 公用模块--common
9.6 如何登记菜单
9.7 如何登记权限
9.8 示例:如何修改禅道的语言提示?
9.9 示例:创建bug时可以设置优先级字段
9.10 使用在线扩展编辑器
9.11 禅道项目管理软件打包规范1.1版本
10 其他相关
10.1 禅道所使用到的第三方代码
10.2 禅道FAQ
10.3 如何帮助禅道项目
10.4 禅道商业服务
10.5 禅道项目的贡献者
10.6 历史修改记录

集成禅道和svn

2011-09-23 08:58:23
石洋洋
74955
最后编辑:刚哥 于 2017-10-27 10:48:19
简介:本篇文章讲述如何配置禅道集成svn。
说明: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机器分开,不在一台机器上面。

  1. 如果是linux机器,需要安装svn的客户端。rhel,centos可以用yum安装subversion, debian下面可以用apt-get install。
  2. 如果新下载的windows一键安装包,里面已经内置了svn.exe的客户端。在\xampp\silksvn目录下面。
  3. 如果在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 如下图,找到图中红框标志的位置


3.2.2 修改代码

写法如下面例子所示


$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 同上,在同一个文件里找到如下代码


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  程序运行的效果图:



5.4 查看相应的bug:



六、部署定时任务

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

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

七、注意事项:

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

评论列表
Jeffrey Zhang 2017-11-16 14:21:43
点击View 时候 提示 not found, 是怎么解决呢?
Not Found

The requested URL /svn-cat-aHR0cHM6Ly8xOTIuMTY4LjMyLjI5Ojg0NDMvc3ZuL1N1bWFvQVRHL2JyYW5jaGVzL3VhdC9kZXBsb3kv5aGR6LS4572RLeWPkeeJiOa1geeoi+S.oeaBr+i3n+i4quihqC54bHN4-20434.html was not found on this server.
王林 2017-11-16 14:53:45
可以添加一下页面上放QQ,邀请进群后,截图具体的保存页面咨询一下。
jorchen 2017-11-14 11:12:22
svn 集成后,查看svn view,报403错误,实际上查看日志是文件名太长了(超过255), 这个怎么解决??
svn-cat-aHR0cDovL3N2bi5zendpc2RvbS5jbi9zendpc2RvbS9GT1NTX1BST0pFQ1Qvc291cmNlL2Zvc3NfZnNjZy9mb3NzLWZzY2ctZ3NyZWctYWRhcHRlci9zcmMvbWFpbi9qYXZhL2NvbS9zendpc2RvbS9mb3NzL2Zsb3dkaXNwYXRjaGVyL2FkYXB0ZXIvZ3NyZWcvd2ViL0dzcmVnQWRhcHRlckNvbnRyb2xsZXIuamF2YQ==-11949.html


石洋洋 2017-11-14 13:31:56
已经记录bug,谢谢反馈。这个需要相关同事研究一下如何处理,解决后会在后续版本中进行发布,具体可以查看:http://www.xhtours.com/bug-view-1274.html
老王 2017-10-11 23:17:47
SVN里有多个项目,怎么在提交代码的时候可以比较智能关联到相关的代码。谢谢
石洋洋 2017-10-12 09:23:46
按照当前文档进行配置即可。
王林 2017-10-12 09:23:52
svn与禅道集成成功后,在提交代码时添加注释:
开发者在提交svn的时候,需要在备注里面注明此次修改相关的需求,或者任务,或者bug的id。比如下面的格式:
bug#123,234, 1234,也可以是bug:123,234 1234,id列表之间,用逗号和空格都可以。
story#123 task#123
bug, story, task是必须标注的。:)
张萌萌 2017-09-08 11:40:53
[root@localhost bin]# ./syncsvn.sh

Parse error: syntax error, unexpected 'if' (T_IF) in /opt/zbox/app/zentao/module/svn/model.php on line 392

11:38:55 syntax error, unexpected 'if' (T_IF) in <strong>/opt/zbox/app/zentao/module/svn/model.php</strong> on line <strong>392</strong> when visiting <strong>svn-run</strong>

执行syncsvn.sh报以上错误,是什么原因
石洋洋 2017-09-08 13:17:32
打开/opt/zbox/app/zentao/module/svn/model.php 在 391行最后加上英文分号;
qsyygug 2017-08-21 17:53:49
SVN的路径中有中文,执行syncsvn.sh时报错Parse error: syntax error, unexpected '';' (T_CONSTANT_ENCAPSED_STRING) in /opt/zbox/app/zentao/module/svn/config.php on line 24
王林 2017-08-22 10:30:08
路径不允许有中文或空格
flame 2017-07-26 11:36:45
我在执行syncsvn.sh脚本的时候,报了一个错

PHP Fatal error: Class 'PDO' not found in /opt/zbox/app/zentao/framework/base/router.class.php on line 1863
PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /opt/zbox/app/zentao/framework/base/router.class.php on line 1974
PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /opt/zbox/app/zentao/framework/base/router.class.php on line 1987
PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /opt/zbox/app/zentao/framework/base/router.class.php on line 1974
PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /opt/zbox/app/zentao/framework/base/router.class.php on line 1987

03:29:30 Class 'PDO' not found in <strong>/opt/zbox/app/zentao/framework/base/router.class.php</strong> on line <strong>1863</strong> when visiting <strong></strong>
石洋洋 2017-07-26 13:29:44
当前这个禅道包下载的网址麻烦提供一下。检查一下禅道的mysql服务启动了吗?
test 2017-06-07 17:04:21
syncsvn.sh 可以不从第一个版本开始吗,
2017-06-07 17:03:47 begin repo 2
2017-06-07 17:03:47 start from revision 0

直接内存溢出了:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /var/www/html/zentao/module/svn/model.php on line 311
石洋洋 2017-06-07 17:57:09
修改php.ini 中 memory_limit 参数的值改成 512M,重启服务器后生效。同步svn可以修改 zentao/tmp/svn/ 对应编号的文件里面记录了上次同步到的版本号,可以直接修改一下。
王政 2017-06-07 10:45:47
hi ,上面我提到的bug view diff显示空白的情况是我的配置问题还是有其他什么原因呢?
王政 2017-06-07 09:38:06
hi , 刚才url改成zentaopms/www/后报错是没有了 ,但是点击bug view diff的时候显示的view是空白的就只显示了http://www.xhtours.com/svn/repo1/svn/repo1/tt/t@40 没有具体的差异报告,这是什么情况?
石洋洋 2017-06-07 11:13:44
zentao(pro/pms)/config/my.php 中debug的值改成true 重新操作一下 看日志文件 zentao(pms/pro)/tmp/log/php开头的今天的文件有什么报错。
王政 2017-06-07 08:53:39
hi,感谢你的耐心回复,我按照你的方法在生成syncsvn.sh脚本时url路径中添加了zentao,但是点击bug view diff时还是报同样的错误,生成后的脚本如下:
[root@lvs-43 bin]# cat syncsvn.sh
/opt/lampp/bin/php /opt/lampp/htdocs/zentaopms/bin/ztcli 'http://www.xhtours.com/zentao/svn-run'

我的禅道是linux 9.2.1自定义安装版本,不是linux一键安装包,我的init.sh默认路径是:/opt/lampp/htdocs/zentaopms/bin
难道我应该在init.sh生成syncsvn.sh脚本是添加zentaopms到url中?
然后我重新生成syncsvn.sh脚本,然后在url中添加zentaopms,这时再点击bug记录中的view diff 显示:
08:51:12 ERROR: The modulename '192.168.20.43/zentaopms/svn' illegal. in /opt/lampp/htdocs/zentaopms/framework/base/router.class.php on line 1220, last called by /opt/lampp/htdocs/zentaopms/framework/base/router.class.php on line 1339 through function setModuleName.
in /opt/lampp/htdocs/zentaopms/framework/base/router.class.php on line 1932 when visiting 192.168.20.43/zentaopms/svn-cat-aHR0cDovLzE5Mi4xNjguMjAuNDMvc3ZuL3JlcG8xL3N2bi9yZXBvMS90dC90-38

这是又是什么原因?

石洋洋 2017-06-07 08:58:40
生成脚本的时候要填写禅道真实的访问网址,贵公司是自己搭建的环境 访问网址应该是 http://www.xhtours.com/zentaopms/www/svn-run
1/7
发表评论
评论通过审核后显示。