SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2733|回复: 1

[原创] 集成禅道和svn

[复制链接]
发表于 2015-10-14 14:19:25 | 显示全部楼层 |阅读模式
说明:svn集成功能配置会比较复杂,我们会尽量通过文档来帮助大家配置成功!如果实在配置不成功的,可以考虑找我们做收费技术支持。
# s9 l5 N- K  q! }$ j: |9 ^2 f禅道于2.2版本内置了svn集成功能,把禅道和用户代码进行有效关联,方便用户查看。这篇文章将给大家讲述如何配置禅道集成svn。3 e. j: C! E0 }+ C: W% B

! H, B0 K2 P' y1 \一、subversion集成机制说明( w! K2 a! x0 L) S# M& _
subversion集成的基本机制是:分析提交代码时的注释 => 得出相应的story, task, bugID => 写入到禅道的数据库。
5 a* G6 U2 F) K# ~实现上述功能有两个方案,一个方案是采用svn自带的钩子机制,当有代码提交的时候,触发一个钩子脚本,然后分析注释,得出相应的bug, story或者task的id号,然后调用禅道的api,将相关的记录写入数据库。还有一个方案是通过svn客户端软件的log命令,来获得所有的提交记录,然后分析,得出相应的id,写入数据库。
3 _- D( R3 ]3 m) C/ k9 H上述两个方案各有各自的优缺点,我们最终是选择了第二个方案。因为第二个方案调试比较好调试,部署也相对方便,同时可以解析之前的所有记录,有比较好的灵活性。$ ]* t$ L: J5 @  U! j
3 P8 Z1 ]- p" ]7 q* d
二、在禅道所在机器上面部署svn命令行客户端
9 r, I: j' x3 J- ]1 B6 |9 Dsvn命令行客户端是指subversion自带的svn命令。windows下面是svn.exe,linux下面是没有后缀的svn。
' E+ m3 ^* P  ?7 D7 f9 I% I禅道所在的机器可以和subversion机器分开,不在一台机器上面。, N4 L* E, b& ~6 J% `7 e
如果是linux机器,需要安装svn的客户端。rhel,centos可以用yum安装subversion, debian下面可以用apt-get install。
9 h0 }1 n* }( H9 S3 r0 N" A  j. W" D如果最新下载的windows一键安装包,里面已经内置了svn.exe的客户端。在\xampp\silksvn目录下面。  X1 N, V9 v/ T% e4 [; }
如果在windows下面自己安装,可以考虑下载slilksvn的客户端软件,安装。2 q1 b( t9 {) ^& d

) S- ~/ I, M* Z/ ?$ Y三、配置禅道关于subversion的参数+ F) ^( h5 a/ X2 q% }7 ]7 L. u
3.1 代码位置  x: z3 l, B4 J4 M  Q, G
svn模块的配置文件位于zentao/module/svn/config.php。您可以直接修改这个文件,但建议您将改动保存到svn/ext/config/svn.php中。这样将来我们升级,就不会覆盖您的配置文件。+ d; K1 ?) _9 I  i& V0 N
3.2 配置内容
9 n, M& u' `9 a8 i关于subversion参数的设置,一共有下面几个概念:, a( t6 j3 `3 ^6 c% v. T
1.  svn客户端命令的位置。% i3 k0 X- l  r" q" C; J- {& ^9 F
2.  库(repo): 可以配置多个库。: S5 p) g2 x3 t+ u
3.  库的用户名和参数。
3 J4 v4 ^& ?/ ?$ u) N& s
# f" e# ?5 \8 O2 U# V6 ^2 g下面让我们用实际的例子来说明。
3 d0 Z+ r9 e  m, B+ K3.2.1 如下图,找到图中红框标志的位置3 S: q$ [( W, T( U1 O
" |8 K9 n% |/ n7 K$ B* d# w
0 a' H+ `+ e# a; \, A
3.2.2 修改代码
8 t. U1 C: \; ~  _' G' C写法如下面例子所示
9 I% V; `- n7 ]1 e, K
7 }# t- @' P/ A5 b, v& ]+ a4 H$ e3 p' @
$config->svn->client 这个是用来存储svn客户端执行文件svn.exe路径。8 A2 V4 Y/ N9 j+ C  T
$config->svn->repos[$i]['path'] 这个是用来存储svn代码路径的;' x5 {# m2 E& R8 y
$config->svn->repos[$i]['username'] 这个是用来存储svn登录用户名的; 如果不需要登录,可以保持为空。
* j5 L' m; J6 I$config->svn->repos[$i]['password'] 这个是用来存储svn登录密码的。
! g: e( a/ `( J) q# U
  {; J" H' ]; x2 a3.3 配置多个库0 p$ q) _1 w7 U- o" ^
3.3.1 同上,在同一个文件里找到如下代码
. v" L# [  z& O
9 W( @+ z* a7 X* u+ C" [* F9 f. {5 P' A- L/ r
3.3.2 修改代码
& V) ?5 Q9 [* f; z①将代码中的“/*””*/“删除,其余修改同上,注意:$i ++ 不可修改。
7 S* z1 t; ]: t6 {2 _②如果还有svn库,复制此段代码,进行同样的配置即可。! `% f, E( A/ a1 |, ]

, G, e2 s) X3 Z四、代码提交注释格式
0 i3 A4 [& I0 K7 W7 W9 |6 k+ D% Q开发者在提交svn的时候,需要在备注里面注明此次修改相关的需求,或者任务,或者bug的id。比如下面的格式:
- A# A+ S5 l! @, {" ]) Ybug#123,234, 1234,也可以是bug:123,234 1234,id列表之间,用逗号和空格都可以。
) S5 S3 n- T% r/ h, ^story#123 task#123+ M- y0 ]+ Y6 d" X9 Z+ Q  d
bug, story, task是必须标注的。:)! k% b5 g8 m9 P4 U; e( m

9 Y* B% k4 V$ Q8 }/ g五、执行svn同步命令3 [/ t1 D4 F" z! `5 i6 r$ v
5.1 参考《初始化管理脚本》这篇文章初始化命令行的脚本。
9 @/ |. ?  n) ~( x5.2 进入到zentao/bin/目录下面,执行syncsvn.bat或者syncsvn.sh脚本。9 s6 `% j! @7 A/ U: x; [, N
5.3  程序运行的效果图:
! Z( n0 Q2 E+ q) d3 P0 \; j
; H- Z: k+ }2 y- K* F( [; [+ E: X4 |$ P- Z- z
5.4 查看相应的bug:0 D: O9 Z5 @2 f0 J; B
7 j6 W( `8 x, {

0 \5 p; U, n0 r2 A! ^, {六、部署定时任务
8 t2 o% u+ {, o! P( G上述命令部署好之后,将该命令加入定时任务就好了。比如可以5分钟执行一次。
8 Y5 f& i( ^: qwindows下面使用计划任务,linux下面使用crontab。+ d# q) U5 j! K
! Q4 P3 l+ H8 ?- [4 n: m8 V
七、注意事项
$ e# f9 c) o3 b) V1 p建议不要使用https或者ssh协议来访问,因为牵扯到https和ssh证书的验证交互问题,操作起来会比较麻烦。
* `1 C* p& p5 `- v- U: |& {+ g: a) y* c% \9 y/ f

+ ]% {1 @7 I3 I7 H# V' R3 d

本帖子中包含更多资源

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

x

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2018-9-25 23:49 , Processed in 0.083892 second(s), 9 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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