SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3569|回复: 2

[原创] 集成禅道和svn

[复制链接]
发表于 2015-10-14 14:19:25 | 显示全部楼层 |阅读模式
说明:svn集成功能配置会比较复杂,我们会尽量通过文档来帮助大家配置成功!如果实在配置不成功的,可以考虑找我们做收费技术支持。
, r4 I& e3 [! i6 D" `7 \禅道于2.2版本内置了svn集成功能,把禅道和用户代码进行有效关联,方便用户查看。这篇文章将给大家讲述如何配置禅道集成svn。" ]# g1 I6 f1 y) x4 A4 Q2 T

7 E2 D, ~( w3 K/ J一、subversion集成机制说明5 Y2 {) e! s6 F0 y( C" I; O5 V% h
subversion集成的基本机制是:分析提交代码时的注释 => 得出相应的story, task, bugID => 写入到禅道的数据库。' e2 V& z) b3 ]: m% T9 u. {* |
实现上述功能有两个方案,一个方案是采用svn自带的钩子机制,当有代码提交的时候,触发一个钩子脚本,然后分析注释,得出相应的bug, story或者task的id号,然后调用禅道的api,将相关的记录写入数据库。还有一个方案是通过svn客户端软件的log命令,来获得所有的提交记录,然后分析,得出相应的id,写入数据库。$ N8 k3 x. b( [+ \9 Z6 ]+ X/ s" c
上述两个方案各有各自的优缺点,我们最终是选择了第二个方案。因为第二个方案调试比较好调试,部署也相对方便,同时可以解析之前的所有记录,有比较好的灵活性。
# \9 l% `5 Z0 w. e5 W/ _9 _# k" P9 V* |$ ^
二、在禅道所在机器上面部署svn命令行客户端
! S/ m7 C# p5 V8 [, d* t4 {svn命令行客户端是指subversion自带的svn命令。windows下面是svn.exe,linux下面是没有后缀的svn。
% q2 a; Y6 o  p; @! f禅道所在的机器可以和subversion机器分开,不在一台机器上面。
& I( H$ {& C  D% o如果是linux机器,需要安装svn的客户端。rhel,centos可以用yum安装subversion, debian下面可以用apt-get install。
# a& I3 J; x9 |) N1 ^) |如果最新下载的windows一键安装包,里面已经内置了svn.exe的客户端。在\xampp\silksvn目录下面。
0 _# D* \( Z: S' e4 t$ {9 W如果在windows下面自己安装,可以考虑下载slilksvn的客户端软件,安装。
) y1 w2 c0 ~* k9 D
4 f; g1 d9 V7 |3 p3 V$ w! q, S三、配置禅道关于subversion的参数# d% {1 Z$ V7 w; F" G& N! e( {
3.1 代码位置6 s, T6 w5 \, X2 Z4 P3 p
svn模块的配置文件位于zentao/module/svn/config.php。您可以直接修改这个文件,但建议您将改动保存到svn/ext/config/svn.php中。这样将来我们升级,就不会覆盖您的配置文件。' c4 e6 b9 Z: _5 s3 C
3.2 配置内容) ^  v) L% b' i7 t7 I5 ]
关于subversion参数的设置,一共有下面几个概念:0 V4 {6 d+ m# i
1.  svn客户端命令的位置。6 r4 |# t- v4 ?8 y. ~: [
2.  库(repo): 可以配置多个库。4 p) a8 Z/ x7 o2 y, B4 J$ W
3.  库的用户名和参数。
1 L: l, d* v* f  ?$ k# G% ~4 a6 H! f
下面让我们用实际的例子来说明。: ?( p) B$ ~6 T1 H9 I5 U2 A' X
3.2.1 如下图,找到图中红框标志的位置
; }7 ^! {8 Q+ @. c6 _
" H7 v" Y/ p; _" \! u+ a3 P4 |
) W& [7 \* ~; Z+ Q2 d: `3.2.2 修改代码% ~, L- M0 N; c, X! _% V
写法如下面例子所示
$ J" D9 K: I# t$ P# q3 h3 R- Y' `+ d7 k' O' H! b/ S
- }0 n3 I1 H3 \! j; E3 v' M. |
$config->svn->client 这个是用来存储svn客户端执行文件svn.exe路径。6 z, f1 c$ q9 H4 X
$config->svn->repos[$i]['path'] 这个是用来存储svn代码路径的;3 U% ~; ]# k" R: x, u) B6 N
$config->svn->repos[$i]['username'] 这个是用来存储svn登录用户名的; 如果不需要登录,可以保持为空。" G/ @7 Y; K' Z
$config->svn->repos[$i]['password'] 这个是用来存储svn登录密码的。; L. k# f9 Z8 j

  r  F4 q3 ?  c3.3 配置多个库
* |+ R; K3 Y9 Y$ Y3.3.1 同上,在同一个文件里找到如下代码! y' j, s" h4 H/ h% _' N- Q% L

+ e' M' ?# i9 u0 H( {$ M/ i* K
$ z* d6 [% O) r8 r& m5 O: d3.3.2 修改代码: e9 i" t$ [0 `; c
①将代码中的“/*””*/“删除,其余修改同上,注意:$i ++ 不可修改。4 s  s8 |3 B6 I7 D5 Y5 P
②如果还有svn库,复制此段代码,进行同样的配置即可。5 U8 R# a; S* v8 H" D6 h& m
( j4 |9 o+ q0 f) {) }
四、代码提交注释格式
  G; d4 ^4 o5 i/ a* h. j  U开发者在提交svn的时候,需要在备注里面注明此次修改相关的需求,或者任务,或者bug的id。比如下面的格式:
. [8 x7 g2 m  z9 y! Zbug#123,234, 1234,也可以是bug:123,234 1234,id列表之间,用逗号和空格都可以。  w. ?  W( x* C  ^
story#123 task#123+ o2 @' }) _: ^! r- c: R
bug, story, task是必须标注的。:)- H" X3 N: @$ X( N6 R( ^: M

% z" v& r. q* f. @: |  J5 v9 w五、执行svn同步命令% [" H4 i% Z' O) A
5.1 参考《初始化管理脚本》这篇文章初始化命令行的脚本。
1 U% O) [! B* Q5.2 进入到zentao/bin/目录下面,执行syncsvn.bat或者syncsvn.sh脚本。* j3 V4 {! a# @! X1 y7 @2 q
5.3  程序运行的效果图:
# w( x, A. D; n; U5 x' y6 k, F: x! T* {" b* Y; G7 u+ d

8 P6 c- i6 e" \/ q& I5.4 查看相应的bug:# i1 c9 f8 @( f8 {' I

' ^- i5 T# P3 S0 r% N3 G
1 m( j& q- H6 @+ U5 W% T3 x六、部署定时任务4 }* R: B. `) @) z" s7 o: Q5 w* s0 \! J
上述命令部署好之后,将该命令加入定时任务就好了。比如可以5分钟执行一次。8 U' a- p+ D4 @- _$ n' U
windows下面使用计划任务,linux下面使用crontab。
' X5 }% I) U9 n$ {! K3 L: P2 o/ z8 _
七、注意事项0 n0 k/ q( M- ?5 x" D( t, O2 G
建议不要使用https或者ssh协议来访问,因为牵扯到https和ssh证书的验证交互问题,操作起来会比较麻烦。
1 e$ W( b' p! W0 N" n
: M% w! N# R8 n
( ^% @5 @/ t, |* N. R

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金钱 +5 收起 理由
mihua_nini + 5 很棒!

查看全部评分

发表于 2018-3-19 10:01:19 | 显示全部楼层
详细很给力,赞一个。
回复 支持 反对

使用道具 举报

发表于 2019-3-7 13:47:56 | 显示全部楼层
收藏下来,回头尝试一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2019-4-24 11:04 , Processed in 0.065459 second(s), 9 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表