淘宝商城(天猫)高级技术专家.3年研发+3年性能测试调优/系统测试+4年团队管理与测试架构、研发系统实践. 新舞台新气象, 深化测试基础架构及研发架构,希望能在某个技术领域成为真正的技术大牛。欢迎荐才http://bbs.51testing.com/viewthread.php?tid=120496&extra=&page=1 .邮件: jianzhao.liangjz@alibaba-inc.com,MSN:liangjianzhao@163.com.微博:http://t.sina.com.cn/1674816524

基于规则的svn diff分析结果差异提升code review效率思路

上一篇 / 下一篇  2010-03-16 21:25:31 / 个人分类:自动化测试框架实现与优化

   在某些类型的项目中,比如增强安全、更换底层api的项目,修改涉及大量文件,有较多的更改都是相对机械、有规律的。

 如果能够将不符合特定正则表达式的差异结果梳理出,作为重点code review的内容,将提升code review效率。

 甚至更勇敢点,扫描源码文件发现符合规则的行直接更换为新行,该部份代码编写工作都省却了。

 自动化比较的动作本质是对如下几个操作做封装.

1) 列举svn url下所有的文件

   [liangjz@b2b_plat_1367 cnmarket_bops_security_dev]$ svn list http://svn/repos/ali_cn/bops/ezra/branches/20100222_cnmarket_bops_security_dev/bops-deploy/templates/topic/screen

sTTopic.vm

...

2) 对每个文件都获取修订记录

[liangjz@b2b_plat_1367 cnmarket_bops_security_dev]$ svn loghttp://svn/repos/ali_cn/bops/ezra/branches/20100222_cnmarket_bops_security_dev/bops-deploy/templates/topic/screen/sTTopic.vm  --stop-on-copy
------------------------------------------------------------------------
r193523 | wb_chao.qian | 2010-02-26 09:15:44 +0800 (??, 2010-02-26) | 1 DD
r192077 | bruce.fany | 2010-02-22 12:55:08 +0800 (ò?, 2010-02-22) | 1 DD

3) 比较基线及最新的修订记录

[liangjz@b2b_plat_1367 cnmarket_bops_security_dev]$ svn diff -r 192077:193523 http://svn/repos/ali_cn/bops/ezra/branches/20100222_cnmarket_bops_security_dev/bops-deploy/templates/topic/screen/sTTopic.vm
Index: sTTopic.vm
===================================================================
--- sTTopic.vm  (°?±? 192077)
+++ sTTopic.vm  (°?±? 193523)
@@ -214,6 +214,7 @@
                <input type="hidden" name="picname" value="" />
+                     $xyz.hiddenField
         <tr>
                        <td colspan="6" class="f10"><strong>?ù±?D??¢</strong></td>

 我们需要对+或者-开头的差异内容做大量的字符操作分析。这个是难度最大的,思路一般是结合正则表达式及字符串回溯、前移。

 自动化svn操作用java实现的话,有2种方式

1) 借用svnkit 包。不需要svn 客户端

2) 采用java Runtime.exec() api直接执行svn 客户端命令,需要依赖svn 客户端

 上述机械操作应用的范围窄,但是较大减少人肉操作:)

 


TAG: diff DIFF review 效率 svn SVN svnkit  code

sihanjishu的个人空间 引用 删除 sihanjishu   /   2010-03-19 16:44:10
大师如果有解决方案,也给我们部门推荐下吧。
我们部门一直想做,但是一直没有精力投入进去。
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar