- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Svn代码统计和取源代码工具设计方案
文件编号: FH/GYSJ/XX/XXXX-XXX 文件版本: 0.0.1 拟 制: 何永刚 2010年月日 年月日 年月日
修改记录
序号 版本号 生效日期 变更理由/变更内容 变更人 备注 1 2 3 4 5
目 录
目 录 3
1. 术语与缩写解释 4
2. 系统概述 4
2.1背景 4
2.2功能目标 4
3. 系统总体结构 4
3.1模块划分结构图 4
4.数据流程说明 6
4.1数据流程图 6
4.2数据处理流程: 7
4.3主要数据说明: 10
5.模块设计 12
6.参考资料 错误!未定义书签。
术语与缩写解释
缩写、术语 解释 REPOS_PATH Subversion Repository Path,Subversion 数据仓库路径 系统概述
2.1背景
部门决定更换版本控制工具,从Visual SourceSafe更换至Subversion,版本控制工具相关外围工具也需要随之更换。版本控制器对外接口改变,原VSS代码统计工具VManager不能在Subversion中使用,因此需要针对Subversion提供的接口进行开发。
2.2功能目标
获取指定源代码文件提交时间端内,指定作者所属的代码修改量。
获取指定作者新建、维护的源代码,新建文件存放于Create文件夹,维护代码文件分
New(修改后的源码文件)和Old(修改前的源码文件)两个文件夹存放
系统总体结构
3.1模块划分结构图
图3.1.1
用户数据输入,任务制定、读取模块 TaskDefine
该模块重用自VManager的TaskDefineDlg,存储和读取查询任务信息:查询用户名AuthorName,时间段、版本库路径REPOS_PATH等。
Subversion数据库连接、数据掘取模块;DBReader
该模块连接Subversion数据库,由用户界面调用,以用户界面从任务读取模块获取的查询任务信息为参数, 获取对应查询用户(作者)的源代码文件信息:版本,日期,获取对应源代码文件内容等。
中间数据处理、统计模块。DataAnalyze
该模块分析处理从Subversion数据掘取模块获取的查询用户信息,进行查询结果统计:源代码文件,代码量。
文件、统计结果存储模块 SaveResult
该模块重用自VManager的Display模块,存储数据处理模块的输出信息:需存储源代码内容、存放路径。(有取代码需求时存储),代码量统计结果。
用户操作界面
用户界面,用户可通过界面操作进行任务制定、执行,并监视查询任务的执行状态
4.数据流程说明
4.1数据流程图
图4.1.1
流程图中灰色部分是基本流程模块, 黄色部分和绿色部分为二选一模块;黄色模块使用Subversion自带的文件比较工具进行代码修改量统计,绿色模块使用VManager代码统计工具中的文件比较模块进行代码修改量的统计,两种方式的执行效率及精确程度需要完成后比较。
4.2数据处理流程:
History从Subversion库(REPOS_PATH)获取该库的版本历史信息,将其保存为一个版本列表 ReversionList:如图4.2.1所示
图4.2.1
Info根据版本号_reversion获取该版本的信息:作者、时间、提交日志; 由此可以得出 Author, ReversionNo 数据对。
图4.2.2
Chaged根据版本号_reversion获取该版本的修改信息(针对版本目录的),由此获得版本号、修改文件列表:如下图示,由此得出ReversionNo, FileList数据对
图4.2.3
代码统计方法之一:
Diff 根据版本号_reversion获取版本目录下该版本所有修改文件的修改内容(见图4.2.4):分析该文件可获取代码修改量,代码修改内容,差异文件版本号:
FileName, AuthorName, Reversion, PreReversion, FileChanged。
根据前面History、Info、Change获取的文件信息FileName, Reversion, AuthorName, 判定差异版本是否属于同一作者,如果非同一作者,代码量计入结果;同一作者则不计。
取源代码文件到本地时, 取Rversion版本到New文件夹,PreReversion版本到Old文件夹。
Reversion为1时,取文件到Create文件夹。
图4.2.4
代码统计方法之二:
根据History、Info、Changed获取的数据:
Repos_path, ReversionList
Reversion, AuthorName
文档评论(0)