前言
首先SVN和Git都是常用版本管理工具,由于当前工作中使用的ASCET-SCM需要SVN进行搭配使用,因此最终选择了SVN作为版本管理工具。
SVN版本管理
SVN(Subversion)采用全局版本号模式,即在版本库或工作区内的所有文件/文件夹变更都有连续的、唯一的版本记录。查看版本库版本记录,可获取每个版本编号、作者、提交时间、备注等信息。
(图1)
配置管理需求
在软件开发过程中,通常需要记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。
简言之,开发者需要清晰地掌握每次发布的软件产品是基于哪个版本的需求文档、测试案例、各个相关联的子模块的版本信息、编译器/编译脚本等版本信息。保证软件开发的一致性及追溯性。
当前不足
如图1所示,通过Visual SVN使用show log命令可获取每次版本变更的历史,但是却无法直观获取每个工作项版本的演化过程。
解决方案
为此制作了一个获取SVN版本库各个工作项版本演变历史的小工具,供大家学习与交流。
其他使用方法如下:
1. 小工具是windows的控制台软件,可在cmd窗口调用运行或者使用BAT批处理文件调用运行,调用格式如下
-i 待获取版本的checkout文件夹路径
-o 工作项版本记录文件路径(Excel格式)
2. 小工具将自动读取checkout文件夹内所有工作项的版本信息,并保存成Excel文件
3. 保存之后的Excel文件记录形式如下,第1,2,3列记录了版本库内所有版本变更的时间、版本编号、变更者信息,其余每一列都展示了版本库内的所有工作项(文件)在各自的版本变更历史。
4. 通过上述版本变更表格,并通过筛选的方式获取某个工作项(文件)发布(版本号变更)时刻,其余所有关联工作项(文件)的版本信息。
例如:我们需要获取当F0111_VrtrPrimP_DD.zip工作项(模块)在第三次版本提交/r314版时,其他工作项(模块)此刻的版本信息。
原理如下:
1. 首先通过SVN命令行指令获取整个版本库checkout文件夹的版本变更记录
2. 获取整个版本库checkout文件夹(除去.vsn子文件夹)内所有文件名称,然后分别查询每个文件的版本变更记录
3. 将文件夹版本变更记录与各个文件的版本变更记录拼接在一个工作表中即可。