SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3325|回复: 1

[原创] 集成禅道和svn

[复制链接]
发表于 2015-10-14 14:19:25 | 显示全部楼层 |阅读模式
说明:svn集成功能配置会比较复杂,我们会尽量通过文档来帮助大家配置成功!如果实在配置不成功的,可以考虑找我们做收费技术支持。
% K, [. W  _: l5 W3 S' ~2 S禅道于2.2版本内置了svn集成功能,把禅道和用户代码进行有效关联,方便用户查看。这篇文章将给大家讲述如何配置禅道集成svn。
' t& @/ ^+ I: X' T/ G9 V# m6 `% e( ?- u( |$ ~
一、subversion集成机制说明3 {8 u8 h+ o& b, S: _
subversion集成的基本机制是:分析提交代码时的注释 => 得出相应的story, task, bugID => 写入到禅道的数据库。
. p, `5 h" ^9 H6 K; r. @% F# w6 I实现上述功能有两个方案,一个方案是采用svn自带的钩子机制,当有代码提交的时候,触发一个钩子脚本,然后分析注释,得出相应的bug, story或者task的id号,然后调用禅道的api,将相关的记录写入数据库。还有一个方案是通过svn客户端软件的log命令,来获得所有的提交记录,然后分析,得出相应的id,写入数据库。; d& `+ W5 s: p+ u1 @
上述两个方案各有各自的优缺点,我们最终是选择了第二个方案。因为第二个方案调试比较好调试,部署也相对方便,同时可以解析之前的所有记录,有比较好的灵活性。( P- ]5 c; ]5 H& y0 s! d, Z' A/ S
" o$ p; A4 E9 |# b4 r' u
二、在禅道所在机器上面部署svn命令行客户端
( G9 Z4 ]  _, e% csvn命令行客户端是指subversion自带的svn命令。windows下面是svn.exe,linux下面是没有后缀的svn。
8 {; }5 ]& p- H4 _; a4 }禅道所在的机器可以和subversion机器分开,不在一台机器上面。/ _' P5 ?1 r) s! |
如果是linux机器,需要安装svn的客户端。rhel,centos可以用yum安装subversion, debian下面可以用apt-get install。# c) j; [6 d+ E; A+ _/ Q6 o7 C
如果最新下载的windows一键安装包,里面已经内置了svn.exe的客户端。在\xampp\silksvn目录下面。
1 g  P# @; T0 H6 s1 E' o如果在windows下面自己安装,可以考虑下载slilksvn的客户端软件,安装。5 R8 }* H- m7 l2 p

. l, k( @9 L  W; r! k( H8 p- u三、配置禅道关于subversion的参数
( j1 \8 e1 D" ~! p9 P5 B& [3.1 代码位置
! d8 ~4 P& ?2 ^svn模块的配置文件位于zentao/module/svn/config.php。您可以直接修改这个文件,但建议您将改动保存到svn/ext/config/svn.php中。这样将来我们升级,就不会覆盖您的配置文件。8 o2 a+ |; r' O7 [
3.2 配置内容
! n: H, J2 @( ~6 C4 m% K1 r9 z关于subversion参数的设置,一共有下面几个概念:
8 A  w" Z; U: P9 U* ~: N+ K1 @7 g1.  svn客户端命令的位置。4 }+ r9 B) T, ^* x% Z
2.  库(repo): 可以配置多个库。4 B& |+ N& m# ~6 o6 a' |5 K# r
3.  库的用户名和参数。
# g0 Z5 w; f) f  n4 t( {4 T" y9 j( t: x5 q2 u
下面让我们用实际的例子来说明。3 J% S, ~) A. ?1 e/ ^$ Y- ]
3.2.1 如下图,找到图中红框标志的位置
) U) s& D( k( O( y
  g- s) v' f$ g& F
$ C2 i. E" i( d" U" d7 |3.2.2 修改代码; e1 ]. m! A4 ?2 X% c
写法如下面例子所示; P1 J3 i4 ]7 s% A$ M% X

1 U8 A/ ~& X3 @' ?' r# S) t- y1 _4 G6 q; _7 R
$config->svn->client 这个是用来存储svn客户端执行文件svn.exe路径。
1 U4 p! v  t7 o0 J0 y$ E. w) ?$config->svn->repos[$i]['path'] 这个是用来存储svn代码路径的;2 Y/ B( R  Y4 L& s
$config->svn->repos[$i]['username'] 这个是用来存储svn登录用户名的; 如果不需要登录,可以保持为空。. ^" Q2 r/ r: x: a
$config->svn->repos[$i]['password'] 这个是用来存储svn登录密码的。
8 _% f9 P" a6 ]7 {# A1 B
% z- X% H) j: I- t+ a; K3.3 配置多个库3 R; b6 q: D* Y9 O% S; A  t- I
3.3.1 同上,在同一个文件里找到如下代码7 t3 V( w2 {0 `6 w# I6 C; E) M
8 X0 {* h' g* A6 T( O
$ @" V+ E/ z. L2 v6 s) w
3.3.2 修改代码, `: r9 Z' w) ~3 N$ T. g, W9 y* s
①将代码中的“/*””*/“删除,其余修改同上,注意:$i ++ 不可修改。
) f( r4 w. t0 n8 s" h" A②如果还有svn库,复制此段代码,进行同样的配置即可。, k/ [! [) a, h  y
( G& T; e; x1 U# P
四、代码提交注释格式
: X( B8 ]2 C6 x$ J( o开发者在提交svn的时候,需要在备注里面注明此次修改相关的需求,或者任务,或者bug的id。比如下面的格式:
+ }- R6 D6 q- M5 n' w& H3 Ebug#123,234, 1234,也可以是bug:123,234 1234,id列表之间,用逗号和空格都可以。) f& Z2 k  ?' v9 |
story#123 task#123' x& o% f/ j0 {  O0 T, }
bug, story, task是必须标注的。:)6 N& R! ~; C$ n) M9 G9 y- z/ Z
! w! k3 X! g# ?# f' E1 ~! W7 M& u
五、执行svn同步命令: y4 v( W+ K1 o
5.1 参考《初始化管理脚本》这篇文章初始化命令行的脚本。9 `, ]) n  d6 S2 H4 K9 p/ j
5.2 进入到zentao/bin/目录下面,执行syncsvn.bat或者syncsvn.sh脚本。5 a# m6 M- b, u& w' H9 R; d( k6 w" \
5.3  程序运行的效果图:
5 |; i1 R7 p3 V/ e1 B+ q: S: Z
% b) C% f' v8 ?& R4 Z3 Z1 A# v/ o; C
5.4 查看相应的bug:
4 M5 Z: I3 F/ B6 O
# N$ ?2 V" m. _6 c$ P" M2 X% g8 G4 }  o+ o  K2 h% P
六、部署定时任务
8 h0 d. Y- A: m  `上述命令部署好之后,将该命令加入定时任务就好了。比如可以5分钟执行一次。* H* H) Q: C" l: l, o1 R2 ?7 m
windows下面使用计划任务,linux下面使用crontab。
9 B' q. ?" L/ \- ?
- `: N2 I5 X$ b! M$ p6 o* M5 B七、注意事项
8 O( k5 y. H, k4 I建议不要使用https或者ssh协议来访问,因为牵扯到https和ssh证书的验证交互问题,操作起来会比较麻烦。& P, O. g# ?/ |, \) r# l/ b
% P- `1 s0 u. h
# j' f3 W0 n/ |0 g# r+ l+ E

本帖子中包含更多资源

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

x

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2019-2-19 17:55 , Processed in 0.080245 second(s), 9 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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