SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1953|回复: 0

[原创] 集成禅道和svn

[复制链接]
发表于 2015-10-14 14:19:25 | 显示全部楼层 |阅读模式
说明:svn集成功能配置会比较复杂,我们会尽量通过文档来帮助大家配置成功!如果实在配置不成功的,可以考虑找我们做收费技术支持。4 F* v% ~  R, {$ x
禅道于2.2版本内置了svn集成功能,把禅道和用户代码进行有效关联,方便用户查看。这篇文章将给大家讲述如何配置禅道集成svn。
& h) F% D( w5 o+ p$ ?6 _" u! O; Y: K0 g; F7 g
一、subversion集成机制说明) T" K8 O: t! O) {) X
subversion集成的基本机制是:分析提交代码时的注释 => 得出相应的story, task, bugID => 写入到禅道的数据库。
2 ]) d4 L9 w; y3 v. z5 T) ?实现上述功能有两个方案,一个方案是采用svn自带的钩子机制,当有代码提交的时候,触发一个钩子脚本,然后分析注释,得出相应的bug, story或者task的id号,然后调用禅道的api,将相关的记录写入数据库。还有一个方案是通过svn客户端软件的log命令,来获得所有的提交记录,然后分析,得出相应的id,写入数据库。
  ], i8 `0 a6 _" I上述两个方案各有各自的优缺点,我们最终是选择了第二个方案。因为第二个方案调试比较好调试,部署也相对方便,同时可以解析之前的所有记录,有比较好的灵活性。) p5 o- g- B/ ?5 [0 S0 ?) @

1 I# \5 N6 @, @) \二、在禅道所在机器上面部署svn命令行客户端
" b1 o: E! S' Y; wsvn命令行客户端是指subversion自带的svn命令。windows下面是svn.exe,linux下面是没有后缀的svn。7 D8 ^9 H0 t2 U3 s. M6 D* V9 g$ X4 N
禅道所在的机器可以和subversion机器分开,不在一台机器上面。8 h7 g# C7 o& j* H, o
如果是linux机器,需要安装svn的客户端。rhel,centos可以用yum安装subversion, debian下面可以用apt-get install。. ~/ |) T$ {4 h% h; }6 h& N9 l
如果最新下载的windows一键安装包,里面已经内置了svn.exe的客户端。在\xampp\silksvn目录下面。
: |. ~% r% e8 M8 T$ ^如果在windows下面自己安装,可以考虑下载slilksvn的客户端软件,安装。# k; x/ N3 C7 z$ f2 G$ j- [, ]1 o$ X

& z. R/ a4 p' a1 g. ~; V! G三、配置禅道关于subversion的参数
5 M. O" {6 ~3 j3 |+ g3.1 代码位置+ v, h/ B1 {) I# S6 k! ^
svn模块的配置文件位于zentao/module/svn/config.php。您可以直接修改这个文件,但建议您将改动保存到svn/ext/config/svn.php中。这样将来我们升级,就不会覆盖您的配置文件。0 T* ?; a% H5 t) U; B' y
3.2 配置内容' h" D" r* x. @: H
关于subversion参数的设置,一共有下面几个概念:9 _  t5 m+ X$ S' c! R' f
1.  svn客户端命令的位置。
! x( x! T6 `1 d. o4 A2.  库(repo): 可以配置多个库。" L0 i5 j: H( u3 N2 I) \
3.  库的用户名和参数。
' R9 ]4 R2 C- Z; |+ M6 C6 [$ W' Z' D3 C2 @3 Z9 U$ o: s$ c
下面让我们用实际的例子来说明。, K" [; u' B9 U3 F* ]
3.2.1 如下图,找到图中红框标志的位置
: k  C! b+ J4 f2 G! C
2 T6 i8 n" E" G! R. g0 o
; q" ^- n2 q) T3.2.2 修改代码
  l1 t& X* M2 g6 R9 h写法如下面例子所示
: c  d' q: [, I: }; e; q/ V  N. r  J
7 A7 K: Z# F1 ?( S& ~
$config->svn->client 这个是用来存储svn客户端执行文件svn.exe路径。
9 i  J4 r) E; Y% o/ I1 S4 m5 P; Z* W$config->svn->repos[$i]['path'] 这个是用来存储svn代码路径的;, |7 G! e  R/ g2 \/ n2 j: ^7 v
$config->svn->repos[$i]['username'] 这个是用来存储svn登录用户名的; 如果不需要登录,可以保持为空。( ?* s' |! R0 M! y. F( M3 n* V
$config->svn->repos[$i]['password'] 这个是用来存储svn登录密码的。
& x" v4 T) D4 s) k6 s, V# }
- @/ i! v- G; y# h7 K% H# x3 G3.3 配置多个库
, V) b. P6 R1 U3 d0 `, L3.3.1 同上,在同一个文件里找到如下代码
2 C( l/ O: ^- u9 O; F5 D+ }) A
+ ~) o! L; t8 J7 v& N; u5 G1 V2 j
' P" ~3 C0 H( ~) X' F( D; _3.3.2 修改代码0 W% y0 y! ?3 U) f5 M
①将代码中的“/*””*/“删除,其余修改同上,注意:$i ++ 不可修改。& m3 v3 T0 V) ]' u7 g
②如果还有svn库,复制此段代码,进行同样的配置即可。! A& a* a+ P7 R, ]2 Y8 v

8 l2 a  k; D! p6 y# g" C1 g四、代码提交注释格式( Y$ p" C+ t. X( P9 {8 |
开发者在提交svn的时候,需要在备注里面注明此次修改相关的需求,或者任务,或者bug的id。比如下面的格式:
0 r& z6 W& n, n$ |) b/ Ybug#123,234, 1234,也可以是bug:123,234 1234,id列表之间,用逗号和空格都可以。; m, ~- T7 G4 O0 N
story#123 task#1235 G6 Z0 S  [2 e  l# G
bug, story, task是必须标注的。:)
. G5 T1 `7 c6 ?, K8 h4 c3 j
& C* Y6 P2 u7 J: Z" ?$ b五、执行svn同步命令7 a/ t! z, u' y& S8 @
5.1 参考《初始化管理脚本》这篇文章初始化命令行的脚本。2 _1 R! |/ P- [9 j* m* A
5.2 进入到zentao/bin/目录下面,执行syncsvn.bat或者syncsvn.sh脚本。
. \6 h8 D. R- ~. I8 s5.3  程序运行的效果图:9 p, g9 [4 H5 e2 r0 e# S# r

5 Z; R0 ]3 d5 d3 w3 z% O) A
+ K' V- P, y6 V, L: s5.4 查看相应的bug:4 P1 a7 ~2 M+ x2 X8 x9 i$ l

- O5 q0 n6 c( V4 F# S( t, E' D0 e# I+ H1 E$ T
六、部署定时任务
4 P6 m5 w% i+ x) t  Z( \上述命令部署好之后,将该命令加入定时任务就好了。比如可以5分钟执行一次。
( [6 i/ B7 h; }# P/ U# e( Qwindows下面使用计划任务,linux下面使用crontab。* W. `$ X3 ~5 g' F' i0 ?
: Q: `) d  w  u& l
七、注意事项. `5 _' y0 M) M6 a
建议不要使用https或者ssh协议来访问,因为牵扯到https和ssh证书的验证交互问题,操作起来会比较麻烦。
' Q& J; P8 O  L; Y5 V; d: ]5 c/ o7 u' M8 L/ H$ y" z2 H' ~
& F5 _$ |8 T4 |2 Q

本帖子中包含更多资源

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

x

评分

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

查看全部评分

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

本版积分规则

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

GMT+8, 2018-1-17 22:16 , Processed in 0.067356 second(s), 9 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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