CN105868099A - 分支提交差异检测方法及装置 - Google Patents
分支提交差异检测方法及装置 Download PDFInfo
- Publication number
- CN105868099A CN105868099A CN201510868847.6A CN201510868847A CN105868099A CN 105868099 A CN105868099 A CN 105868099A CN 201510868847 A CN201510868847 A CN 201510868847A CN 105868099 A CN105868099 A CN 105868099A
- Authority
- CN
- China
- Prior art keywords
- submitted
- patch file
- amendment
- branch
- difference
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种分支提交差异检测方法及装置,涉及差异检测技术领域,获取两条分支上为相同插件提交的补丁文件,所述补丁文件中包括对源代码进行修改的修改信息;根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,以实现对所述两条分支提交的补丁文件之间的差异检测。本发明不再通过bug号来检测不同分支的提交差异,而是通过补丁文件中的修改信息来比较各条分支为相同插件提交的补丁文件之间的差异,从而保证了对比结果真实可靠。
Description
技术领域
本发明涉及差异检测技术领域,特别涉及一种分支提交差异检测方法及装置。
背景技术
为满足发布不同版本的android等系统的需求,研发过程中会使用多条分支同步开发集成,故而各条分支均会为各插件(即所述android等系统的组成部分)提交补丁文件(patch),对于项目管理人员来说,如何有效的识别不同分支的提交差异是保证集成的关键问题。
在现有方案中,主要是在各条分支的提交记录中筛选出bug号,对bug号进行对比的方式确定提交差异,但是bug号容易漏写、错写,或者一个bug号对应多个不同补丁的情况下,无法完全保证对比结果真实可靠。
发明内容
本发明实施方式提供一种分支提交差异检测方法及装置,用以解决现有技术中在bug号容易漏写、错写,或者一个bug号对应多个不同补丁的情况下,无法完全保证对比结果真实可靠的缺陷。
本发明实施方式提供一种分支提交差异检测方法,所述方法包括:
获取两条分支上为相同插件提交的补丁文件,所述补丁文件中包括对源代码进行修改的修改信息;
根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,以实现对所述两条分支提交的补丁文件之间的差异检测。
本发明实施方式提供一种分支提交差异检测装置,所述装置包括:
文件获取单元,用于获取两条分支上为相同插件提交的补丁文件,所述补丁文件中包括对源代码进行修改的修改信息;
差异比较单元,用于根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,以实现对所述两条分支提交的补丁文件之间的差异检测。
本发明不再通过bug号来检测不同分支的提交差异,而是通过补丁文件中的修改信息来比较各条分支为相同插件提交的补丁文件之间的差异,从而保证了对比结果真实可靠。
附图说明
为了更清楚地说明本发明实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种实施方式的分支提交差异检测方法的流程图;
图2是本发明一种实施方式的分支提交差异检测方法的流程图;
图3是本发明一种实施方式的分支提交差异检测装置的结构框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1是本发明一种实施方式的分支提交差异检测方法的流程图;参照图1,所述方法包括:
S101:获取两条分支上为相同插件提交的补丁文件,所述补丁文件中包括对源代码进行修改的修改信息;
可理解的是,Linux patch是开源社区在进行内核维护时,为了标准化各个贡献者提交规范的一种格式,在代码管理工具中采用类似机制,对每个提交都可以生成补丁文件(patch),每个patch记录了本次修改的修改信息,可以通过传递patch的方式共享修改。
需要说明的是,所述源代码是由若干个插件所组成,故而,补丁文件通常是针对至少部分插件所提交,为便于反映各补丁文件是为哪个插件提交,本实施方式中,所述修改信息包括:插件名称(即用于反映修改的对象)、修改行数和修改内容,当然,还可包括其他信息,本实施方式对此不加以限制。
现有技术中通常是由当前分支下载其他分支提交的bug号,再实现检测,若直接通过该方式,会占用各分支操作同步代码的时间和存储空间,而本实施方式的方法的执行主体为代码服务器(即用于存储各条分支提交补丁文件的服务器),无需占用各分支操作同步代码的时间和存储空间,能够更加快速方便地实现对各条分支提交补丁文件之间的差异检测。
S102:根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,以实现对所述两条分支提交的补丁文件之间的差异检测。
需要说明的是,所述修改信息能够直接反映补丁文件对源代码的修改,故而,本实施方式中可通过该修改信息比较各条分支为相同插件提交的补丁文件之间的差异。
本实施方式不再通过bug号来检测不同分支的提交差异,而是通过补丁文件中的修改信息来比较两条分支为相同插件提交的补丁文件之间的差异,从而保证了对比结果真实可靠。
图2是本发明一种实施方式的分支提交差异检测方法的流程图;参照图2,所述方法包括:
S201:通过git rev-parse命令获取所述两条分支上提交的补丁文件;
可理解的是,由于本实施方式的执行主体为代码服务器,故而,可直接通过git rev-parse命令获取各条分支上提交的补丁文件。
S202:根据所述插件名称为所述两条分支上提交的补丁文件进行划分,以获得所述两条分支上为各插件提交的补丁文件;
需要说明的是,在通过git rev-parse命令获取补丁文件时,通常只能直接获取分支上提交的补丁文件;
为便于确定补丁文件是为哪个插件提交的,本实施方式中,可根据插件名称为各条分支上提交的补丁文件进行划分,以获得所述两条分支上为各插件提交的补丁文件。
例如,某一条支路joygame上提交的补丁文件可按照修改信息中的以下插件名称进行划分:
joygame/amlogic/tools/UbootEnvEditor.git:alpha
joygame/bagder/curl.git:alpha
joygame/device/amlogic.git:alpha
joygame/device/other.git:alpha_hk
S203:将所述两条分支上为插件名称相同的插件提交的补丁文件作为所述两条分支为相同插件提交的补丁文件,所述补丁文件中包括对源代码进行修改的修改信息;
在具体实现中,为便于确定所述两条分支为相同插件提交的补丁文件,本实施方式采用插件名称来进行判断。
S204:判断所述两条分支为相同插件提交的补丁文件之间的修改行数和修改内容是否相同;
可理解的是,比较所述两条支路为相同插件提交的补丁文件之间的差异,可直接通过git cherry命令,但由于git cherry命令是对代码进行比较的命令,若对所有相同插件提交的补丁文件之间的差异均通过git cherry命令来实现,会导致整个差异检测过程的时间周期过长,故而,本实施方式分为两级检测,先检测修改信息中的修改行数和修改内容,在修改行数和修改内容不同时,直接认定为存在差异,在修改行数和修改内容相同后,再通过git cherry命令进行比较,从而有效地降低了差异检测过程的时间周期。
S205:在所述修改行数和修改内容不同时,认定所述两条分支为相同插件提交的补丁文件存在差异;
S206:在所述修改行数和修改内容相同时,通过git cherry命令比较所述两条分支为相同插件提交的补丁文件之间的差异。
在具体实现中,git cherry命令的差异结果可参考:
-30bbe1632bf59729d5f5486e3a9b4fe663352462
+8c16fff2f9cf34ce5febb8c4602fddc23f2e41f0
+a025820b45dbb5886c384c2c22d91595f31521ab
+76056d18fa59a78250a4fc73ea99ba5601e9f189
+9acf063015e8e83211974fb5c8a341bed2b9c5a8
+7528dbf05f26ed70428e76003261b6aa3e9ba1f7
+8f94550233a5b97b2975721ed960099a255976c4
+6358323b63737bb02d70ad45c82c2cdf2d760949
其中,“+”为存在差异,“-”为不存在差异。
可理解的是,在步骤S206之后,还可根据所述两条分支提交的补丁文件之间的差异检测结果生成差异检测报告,当然,所述差异检测报告中还可包括:所述两条分支提交的补丁文件的人员信息、提交时间等信息,本实施方式对此不加以限制。
当然,还可通过其他方式实现,本实施方式对此不加以限制。
对于方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。
图3是本发明一种实施方式的分支提交差异检测装置的结构框图;参照图3,所述装置包括:
文件获取单元301,用于获取两条分支上为相同插件提交的补丁文件,所述补丁文件中包括对源代码进行修改的修改信息;
差异比较单元302,用于根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,以实现对所述两条分支提交的补丁文件之间的差异检测。
在本发明的一种可选实施方式中,所述装置还包括:
报告生成单元,用于根据所述两条分支提交的补丁文件之间的差异检测结果生成差异检测报告。
在本发明的一种可选实施方式中,所述修改信息包括:插件名称、修改行数和修改内容;
所述差异比较单元,进一步用于判断所述两条分支为相同插件提交的补丁文件之间的修改行数和修改内容是否相同;在所述修改行数和修改内容不同时,认定所述两条分支为相同插件提交的补丁文件存在差异。
在本发明的一种可选实施方式中,所述差异比较单元,还用于在所述修改行数和修改内容相同时,通过git cherry命令比较所述两条分支为相同插件提交的补丁文件之间的差异。
在本发明的一种可选实施方式中,所述文件获取单元,还用于通过git rev-parse命令获取所述两条分支上提交的补丁文件;根据所述插件名称为所述两条分支上提交的补丁文件进行划分,以获得所述两条分支上为各插件提交的补丁文件;将所述两条分支上为插件名称相同的插件提交的补丁文件作为所述两条分支为相同插件提交的补丁文件。
对于系统实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施方式或者实施方式的某些部分所述的方法。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。
Claims (10)
1.一种分支提交差异检测方法,其特征在于,所述方法包括:
获取两条分支上为相同插件提交的补丁文件,所述补丁文件中包括对源代码进行修改的修改信息;
根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,以实现对所述两条分支提交的补丁文件之间的差异检测。
2.根据权利要求1所述的方法,其特征在于,所述根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,以实现对所述两条分支提交的补丁文件之间的差异检测之后,所述方法还包括:
根据所述两条分支提交的补丁文件之间的差异检测结果生成差异检测报告。
3.根据权利要求1所述的方法,其特征在于,所述修改信息包括:插件名称、修改行数和修改内容;
所述根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,进一步包括:
判断所述两条分支为相同插件提交的补丁文件之间的修改行数和修改内容是否相同;
在所述修改行数和修改内容不同时,认定所述两条分支为相同插件提交的补丁文件存在差异。
4.根据权利要求3所述的方法,其特征在于,所述判断所述两条分支为相同插件提交的补丁文件之间的修改行数和修改内容是否相同之后,所述方法还包括:
在所述修改行数和修改内容相同时,通过git cherry命令比较所述两条分支为相同插件提交的补丁文件之间的差异。
5.根据权利要求3~4中任一项所述的方法,其特征在于,所述获取两条分支上为相同插件提交的补丁文件,进一步包括:
通过git rev-parse命令获取所述两条分支上提交的补丁文件;
根据所述插件名称为所述两条分支上提交的补丁文件进行划分,以获得所述两条分支上为各插件提交的补丁文件;
将所述两条分支上为插件名称相同的插件提交的补丁文件作为所述两条分支为相同插件提交的补丁文件。
6.一种分支提交差异检测装置,其特征在于,所述装置包括:
文件获取单元,用于获取两条分支上为相同插件提交的补丁文件,所述补丁文件中包括对源代码进行修改的修改信息;
差异比较单元,用于根据所述修改信息比较所述两条分支为相同插件提交的补丁文件之间的差异,以实现对所述两条分支提交的补丁文件之间的差异检测。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
报告生成单元,用于根据所述两条分支提交的补丁文件之间的差异检测结果生成差异检测报告。
8.根据权利要求6所述的装置,其特征在于,所述修改信息包括:插件名称、修改行数和修改内容;
所述差异比较单元,进一步用于判断所述两条分支为相同插件提交的补丁文件之间的修改行数和修改内容是否相同;在所述修改行数和修改内容不同时,认定所述两条分支为相同插件提交的补丁文件存在差异。
9.根据权利要求8所述的装置,其特征在于,所述差异比较单元,还用于在所述修改行数和修改内容相同时,通过git cherry命令比较所述两条分支为相同插件提交的补丁文件之间的差异。
10.根据权利要求8~9中任一项所述的装置,其特征在于,所述文件获取单元,还用于通过git rev-parse命令获取所述两条分支上提交的补丁文件;根据所述插件名称为所述两条分支上提交的补丁文件进行划分,以获得所述两条分支上为各插件提交的补丁文件;将所述两条分支上为插件名称相同的插件提交的补丁文件作为所述两条分支为相同插件提交的补丁文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510868847.6A CN105868099A (zh) | 2015-12-01 | 2015-12-01 | 分支提交差异检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510868847.6A CN105868099A (zh) | 2015-12-01 | 2015-12-01 | 分支提交差异检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105868099A true CN105868099A (zh) | 2016-08-17 |
Family
ID=56624385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510868847.6A Pending CN105868099A (zh) | 2015-12-01 | 2015-12-01 | 分支提交差异检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105868099A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107153540A (zh) * | 2017-04-19 | 2017-09-12 | 畅捷通信息技术股份有限公司 | 增量构建方法及装置 |
CN109241737A (zh) * | 2018-07-03 | 2019-01-18 | 中国科学院信息工程研究所 | 一种面向多种补丁模式的差异分支识别方法及系统 |
CN109901876A (zh) * | 2019-02-28 | 2019-06-18 | 携程旅游信息技术(上海)有限公司 | 代码评审方法、系统、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342114A (ja) * | 2001-05-21 | 2002-11-29 | Fujitsu Ltd | トレースデータ採取可能なプロセッサ |
US20090307668A1 (en) * | 2008-06-05 | 2009-12-10 | International Business Machines Corporation | Software problem identification tool |
CN103049543A (zh) * | 2012-12-26 | 2013-04-17 | 福建天晴数码有限公司 | 多分支配置文件的更新方法及更新工具 |
CN103188097A (zh) * | 2011-12-30 | 2013-07-03 | 金蝶软件(中国)有限公司 | 一种实现补丁管理的方法、装置及系统 |
CN103207779A (zh) * | 2012-01-16 | 2013-07-17 | 国际商业机器公司 | 用于源代码补丁的装置和方法 |
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
CN103973475A (zh) * | 2013-02-05 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 差异补丁包生成方法及下载方法、服务器、客户端 |
-
2015
- 2015-12-01 CN CN201510868847.6A patent/CN105868099A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342114A (ja) * | 2001-05-21 | 2002-11-29 | Fujitsu Ltd | トレースデータ採取可能なプロセッサ |
US20090307668A1 (en) * | 2008-06-05 | 2009-12-10 | International Business Machines Corporation | Software problem identification tool |
CN103188097A (zh) * | 2011-12-30 | 2013-07-03 | 金蝶软件(中国)有限公司 | 一种实现补丁管理的方法、装置及系统 |
CN103207779A (zh) * | 2012-01-16 | 2013-07-17 | 国际商业机器公司 | 用于源代码补丁的装置和方法 |
CN103049543A (zh) * | 2012-12-26 | 2013-04-17 | 福建天晴数码有限公司 | 多分支配置文件的更新方法及更新工具 |
CN103973475A (zh) * | 2013-02-05 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 差异补丁包生成方法及下载方法、服务器、客户端 |
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
Non-Patent Citations (3)
Title |
---|
FSJOY1983: "Git学习教程(七)Git差异对比", 《HTTP://BLOG.51CTO.COM/FSJOY/245465》 * |
王鹏宇等: "基于GIT的实时测控软件分布式管理方法研究", 《自动化技术与应用》 * |
老Z的博客: "Git的Patch功能", 《HTTPS://WWW.CNBLOGS.COM/Y041039/ARTICLES/2411600》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107153540A (zh) * | 2017-04-19 | 2017-09-12 | 畅捷通信息技术股份有限公司 | 增量构建方法及装置 |
CN109241737A (zh) * | 2018-07-03 | 2019-01-18 | 中国科学院信息工程研究所 | 一种面向多种补丁模式的差异分支识别方法及系统 |
CN109901876A (zh) * | 2019-02-28 | 2019-06-18 | 携程旅游信息技术(上海)有限公司 | 代码评审方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289532B2 (en) | Method and system for providing delta code coverage information | |
US8151248B1 (en) | Method and system for software defect management | |
CN106951369B (zh) | 一种联调测试的管理方法及装置 | |
CN105718371B (zh) | 一种回归测试方法、装置及系统 | |
CN104915595B (zh) | 云平台虚拟化漏洞修复的方法及装置 | |
US20150370685A1 (en) | Defect localization in software integration tests | |
US9703690B2 (en) | Determining test case efficiency | |
US20170093900A1 (en) | Information processing apparatus and influence-process extraction method | |
CN104346574A (zh) | 基于配置规范的主机安全配置漏洞自动修复方法及系统 | |
CN105138461A (zh) | 一种应用程序的接口测试方法及装置 | |
US10990510B2 (en) | Associating attribute seeds of regression test cases with breakpoint value-based fingerprints | |
US20200394127A1 (en) | Fault detection using breakpoint value-based fingerprints of failing regression test cases | |
CN106325826A (zh) | 检测配置文件方法及装置 | |
CN105095077B (zh) | 用户界面自动化测试方法和装置 | |
CN110532021B (zh) | 分布式控制系统的组态文件的处理方法、客户端及服务装置 | |
CN108959374B (zh) | 数据存储方法、装置及电子设备 | |
CN104133768A (zh) | 一种程序代码复查方法和装置 | |
CN105868099A (zh) | 分支提交差异检测方法及装置 | |
CN111198811A (zh) | 一种页面自动化测试的方法、装置、电子设备及存储介质 | |
US11467824B2 (en) | Method and system for fast building and testing software | |
CN103559098B (zh) | 智能卡测试号码控制方法、装置及系统 | |
CN110727585B (zh) | 内存泄漏检测方法、装置、电子设备及可读存储介质 | |
CN106407123B (zh) | 一种服务器接口的自动化测试方法及装置 | |
CN110221933A (zh) | 代码缺陷辅助修复方法及系统 | |
US10394699B1 (en) | Method and system for reusing a refinement file in coverage grading |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160817 |
|
WD01 | Invention patent application deemed withdrawn after publication |