CN106843914A - 一种软件源代码差异文件提取方法 - Google Patents
一种软件源代码差异文件提取方法 Download PDFInfo
- Publication number
- CN106843914A CN106843914A CN201710209036.4A CN201710209036A CN106843914A CN 106843914 A CN106843914 A CN 106843914A CN 201710209036 A CN201710209036 A CN 201710209036A CN 106843914 A CN106843914 A CN 106843914A
- Authority
- CN
- China
- Prior art keywords
- differential file
- file
- source code
- extracting method
- differential
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本发明提供软件源代码差异文件提取方法,方法包括:从软件版本服务器上同步目标工作目录到本地进行修改;生成所述目标工作目录的差异文件列表;读取差异文件列表,获得绝对路径;提取差异文件。本发明实现了软件源代码差异文件的快速提取,提高了源代码的审核效率。
Description
技术领域
本发明涉及软件技术领域,尤其涉及一种软件源代码差异文件提取方法。
背景技术
目前的软件越来越大,结构越来越复杂,开发工作量越来越大,因此,在大型软件开发中通常采用团队协作开发的模式,并通过版本服务器(例如SVN)来对版本进行控制,以便进行管理。
当从SVN服务器远程目录同步一份目标工作目录到本地进行修改,修改完成后,在上传更新到SVN服务器之前需要经过管理员的审核比较。当目标工作目录内容很大(例如几个GB)且其中有很多层子目录时,如果将整个目标工作目录拷贝传给管理员将很耗时并且不方便,如果只将几个修改了的文件发给管理员虽然会快捷很多,但必须将每个文件的目录结构路径同时告诉管理员,管理员还需要根据每个文件的位置与服务器对应位置的文件进行比较上传,同样也很繁琐,效率低下。
发明内容
本发明提供一种软件源代码差异文件提取方法,旨在解决现有技术中的缺陷,实现软件源代码差异文件的快速提取,提高了源代码的审核效率。
为达到上述目的,本发明所采取的技术方案为:
本发明提供一种软件源代码差异文件提取方法,包括:
从软件版本服务器上同步目标工作目录到本地进行修改;
生成所述目标工作目录的差异文件列表;
读取差异文件列表,获得绝对路径;
提取差异文件。
具体地,所述生成所述目标工作目录的差异文件列表的步骤,包括如下步骤:
提取所述目标工作目录的差异文件;
生成差异文件列表。
具体地,所述提取差异文件使用函数CopyFile()来实现。
具体地,所述提取差异文件使用函数SHFileOperation()来实现。
具体地,所述读取差异文件列表,获得绝对路径的步骤包括:
按行读取的方式逐行读取每项差异文件的相对文件路径,与源目录中的路径组合成得到该差异文件的绝对路径。
具体地,所述提取差异文件的步骤,包括如下步骤:
确定所述差异文件的源文件路径;
确定目标文件路径;
按照所述差异文件的源文件目录结构提取差异文件到所述目标文件路径下。
具体地,所述软件版本服务器为SVN服务器。
本发明的有益效果在于:本发明通过生成目标工作目录的差异文件列表,获得绝对路径,然后提取差异文件,从而实现了快速提取软件源代码差异文件的技术效果,大大提高了管理员的审核效率。
附图说明
图1是本发明的软件源代码差异文件提取方法的流程示意图;
图2是本发明生成差异文件列表的示意图;
图3是本发明差异文件的相对文件路径的示意图;
图4是本发明提取后的差异文件的示意图。
具体实施方式
下面结合附图具体阐明本发明的实施方式,附图仅供参考和说明使用,不构成对本发明专利保护范围的限制。
如图1所示,本发明的实施例一方面提供一种软件源代码差异文件提取方法,包括:
步骤1、从软件版本服务器上同步目标工作目录到本地进行修改。
具体地,所述软件版本服务器为SVN服务器。
SVN是Subversion的简称,是一个开放源代码的版本控制系统,目前已广泛应用在软件开发工程中。
步骤2、生成所述目标工作目录的差异文件列表。
具体地,步骤2包括如下步骤:
步骤201、提取所述目标工作目录的差异文件。
在具体实施时,如图2所示,所述目标工作目录从SVN服务器上同步到本地修改完成后,通过SVN COMMIT命令提交,SVN会自动将修改过的存在差异的文件提取出来。
步骤202、生成差异文件列表。
具体地,所述差异文件列表为一包含相对文件路径信息的列表。
在具体实施时,选中目标提交文件,在SVN菜单中选择“复制路径信息到剪贴板(Copy paths to clipboard)”命令,将所述目标提交文件的相对文件路径信息提取到差异文件列表DiffFileList.dat中,生成差异文件列表,如图3所示。
步骤3、读取差异文件列表,获得绝对路径。
在所述差异文件列表清单中,每一行都是一个差异文件的相对文件路径。通过按行读取的方式逐行读取每项差异文件的相对文件路径,与源目录中的路径组合成得到该差异文件的绝对路径。
步骤4、提取差异文件。
提取差异文件是将包含所述绝对路径的文件提取复制到对应的目标路径中。
具体地,提取差异文件可以使用函数CopyFile()来实现。
但是,函数CopyFile在复制文件时,需要确保路径存在才能复制成功,因此需要自己判断目标路径文件夹是否存在,不存在则需自己逐级创建,使用起来比较麻烦。
进一步地,提取差异文件可以使用函数SHFileOperation()来实现。
函数SHFileOperation是一种外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等。函数SHFileOperation()只有一个指向SHFILEOPSTRUCT结构参数,使用时只要填写所述结构参数SHFILEOPSTRUCT告诉系统需执行的操作,以及其它重要信息,并且当复制的目标文件路径不存在时,它会自动创建相应的文件路径完成拷贝。
具体而言,包括如下步骤:
步骤401、确定所述差异文件的源文件路径。
步骤402、确定目标文件路径。
步骤403、按照所述差异文件的源文件目录结构提取差异文件到所述目标文件路径下。
如图4所示,可以看到在目标文件路径下,差异文件已经按照差异文件的源文件目录结构被提取出来了。在将目标工作目录上传到SVN服务器之前,将这个包含所述差异文件的文件夹发给管理员进行审核。由于这个包含所述差异文件的文件夹是按照差异文件的源文件目录结构提取的,目录和文件是一一对应的,管理员也只需将这个这个包含所述差异文件的文件夹与服务器的文件夹用比较工具(例如Beyond Compare等)直接对比,审核效率大为提高。
以上所揭露的仅为本发明的较佳实施例,不能以此来限定本发明的权利保护范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。
Claims (7)
1.一种软件源代码差异文件提取方法,其特征在于,包括:
从软件版本服务器上同步目标工作目录到本地进行修改;
生成所述目标工作目录的差异文件列表;
读取差异文件列表,获得绝对路径;
提取差异文件。
2.根据权利要求1所述的软件源代码差异文件提取方法,其特征在于,所述生成所述目标工作目录的差异文件列表的步骤,包括如下步骤:
提取所述目标工作目录的差异文件;
生成差异文件列表。
3.根据权利要求1所述的软件源代码差异文件提取方法,其特征在于,所述提取差异文件使用函数CopyFile()来实现。
4.根据权利要求1所述的软件源代码差异文件提取方法,其特征在于,所述提取差异文件使用函数SHFileOperation()来实现。
5.根据权利要求1所述的软件源代码差异文件提取方法,其特征在于,所述读取差异文件列表,获得绝对路径的步骤包括:
按行读取的方式逐行读取每项差异文件的相对文件路径,与源目录中的路径组合成得到该差异文件的绝对路径。
6.根据权利要求1所述的软件源代码差异文件提取方法,其特征在于,所述提取差异文件的步骤,包括如下步骤:
确定所述差异文件的源文件路径;
确定目标文件路径;
按照所述差异文件的源文件目录结构提取差异文件到所述目标文件路径下。
7.根据权利要求1所述的软件源代码差异文件提取方法,其特征在于,所述软件版本服务器为SVN服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710209036.4A CN106843914A (zh) | 2017-03-31 | 2017-03-31 | 一种软件源代码差异文件提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710209036.4A CN106843914A (zh) | 2017-03-31 | 2017-03-31 | 一种软件源代码差异文件提取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106843914A true CN106843914A (zh) | 2017-06-13 |
Family
ID=59141885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710209036.4A Pending CN106843914A (zh) | 2017-03-31 | 2017-03-31 | 一种软件源代码差异文件提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843914A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783780A (zh) * | 2017-11-21 | 2018-03-09 | 中国银行股份有限公司 | 一种代码复查方法和系统 |
CN109710519A (zh) * | 2018-12-13 | 2019-05-03 | 平安普惠企业管理有限公司 | 项目差异报告生成方法、装置、计算机设备及存储介质 |
CN111104151A (zh) * | 2019-11-26 | 2020-05-05 | 深圳市华卓智能科技有限公司 | 一种基于Shell脚本的Git代码简化的管理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833489A (zh) * | 2010-05-06 | 2010-09-15 | 北京邮电大学 | 一种文件实时监控和智能备份的方法 |
CN102103601A (zh) * | 2009-12-16 | 2011-06-22 | 北大方正集团有限公司 | 选取文件的方法和装置 |
CN103136354A (zh) * | 2013-03-04 | 2013-06-05 | 浪潮电子信息产业股份有限公司 | 一种Linux系统文件夹对比方法 |
CN104424088A (zh) * | 2013-08-21 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 软件的测试方法及装置 |
US9336321B1 (en) * | 2012-01-26 | 2016-05-10 | Amazon Technologies, Inc. | Remote browsing and searching |
CN106201577A (zh) * | 2016-06-27 | 2016-12-07 | 竞技世界(北京)网络技术有限公司 | 一种更新Lua文件的方法及装置 |
-
2017
- 2017-03-31 CN CN201710209036.4A patent/CN106843914A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103601A (zh) * | 2009-12-16 | 2011-06-22 | 北大方正集团有限公司 | 选取文件的方法和装置 |
CN101833489A (zh) * | 2010-05-06 | 2010-09-15 | 北京邮电大学 | 一种文件实时监控和智能备份的方法 |
US9336321B1 (en) * | 2012-01-26 | 2016-05-10 | Amazon Technologies, Inc. | Remote browsing and searching |
CN103136354A (zh) * | 2013-03-04 | 2013-06-05 | 浪潮电子信息产业股份有限公司 | 一种Linux系统文件夹对比方法 |
CN104424088A (zh) * | 2013-08-21 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 软件的测试方法及装置 |
CN106201577A (zh) * | 2016-06-27 | 2016-12-07 | 竞技世界(北京)网络技术有限公司 | 一种更新Lua文件的方法及装置 |
Non-Patent Citations (1)
Title |
---|
网友:盛开的雨季: ""如何让ToroiseSVN导出新增或修改过的文件"", 《HTTPS://WWW.CNBLOGS.COM/WEIHENGBLOGS/P/6141114.HTML》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783780A (zh) * | 2017-11-21 | 2018-03-09 | 中国银行股份有限公司 | 一种代码复查方法和系统 |
CN109710519A (zh) * | 2018-12-13 | 2019-05-03 | 平安普惠企业管理有限公司 | 项目差异报告生成方法、装置、计算机设备及存储介质 |
CN111104151A (zh) * | 2019-11-26 | 2020-05-05 | 深圳市华卓智能科技有限公司 | 一种基于Shell脚本的Git代码简化的管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102591654B (zh) | 一种基于ssh架构的代码生成器及方法 | |
CN104317788B (zh) | Android多国语言翻译方法和装置 | |
CN101477517B (zh) | 一种office文档编辑多点远程同步的方法 | |
WO2017053916A1 (en) | Object storage backed file system | |
CN106843914A (zh) | 一种软件源代码差异文件提取方法 | |
CN103106138B (zh) | 测试用例与测试脚本同步的方法及装置 | |
CN109564529A (zh) | 基于符号链接的占位符 | |
CN102810105A (zh) | 一种移动终端所访问网页的编辑方法及网页编辑器 | |
CN109032662A (zh) | 代码文件生成方法、装置、计算机设备和存储介质 | |
CN104424338A (zh) | web系统的自动生成装置和自动生成方法 | |
CN103037005B (zh) | 在线存储服务的文件同步方法和装置 | |
CN105204860A (zh) | 一种快速生成自定义静态Web页面的方法及装置 | |
CN104361025A (zh) | 一种多源空间数据融合与集成的方法 | |
CN107231415A (zh) | 图片的网络存储方法和装置 | |
CN106445643A (zh) | 克隆、升级虚拟机的方法及设备 | |
CN106371875A (zh) | 一种基于html5的手机应用更新机制 | |
CN107479881A (zh) | 差异代码的同步方法、存储介质、电子设备及系统 | |
JP2015517710A5 (zh) | ||
CN101377737B (zh) | 应用系统资源管理装置 | |
US9031905B2 (en) | Data synchronization | |
CN106372179A (zh) | 一种探测文档变化和同步的方法及系统 | |
CN113268232B (zh) | 一种页面皮肤生成方法、装置和计算机可读存储介质 | |
CN103294477A (zh) | 使用Office文档进行移动开发项目管理的方法 | |
JP5526991B2 (ja) | 情報処理装置、情報処理方法、プログラム、情報処理システム | |
CN106648618B (zh) | 虚拟应用的文本信息生成方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |