CN102279749A - 一种代码归并方法和设备 - Google Patents

一种代码归并方法和设备 Download PDF

Info

Publication number
CN102279749A
CN102279749A CN2011102515742A CN201110251574A CN102279749A CN 102279749 A CN102279749 A CN 102279749A CN 2011102515742 A CN2011102515742 A CN 2011102515742A CN 201110251574 A CN201110251574 A CN 201110251574A CN 102279749 A CN102279749 A CN 102279749A
Authority
CN
China
Prior art keywords
merger
code
file
mark
code file
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.)
Granted
Application number
CN2011102515742A
Other languages
English (en)
Other versions
CN102279749B (zh
Inventor
刘彬
王婷
米灯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN201110251574.2A priority Critical patent/CN102279749B/zh
Publication of CN102279749A publication Critical patent/CN102279749A/zh
Application granted granted Critical
Publication of CN102279749B publication Critical patent/CN102279749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种代码归并方法和设备,应用于根据源代码文件对目标代码文件进行代码归并的过程,该方法包括以下步骤:根据代码段发生改变的情况,使用包含有对应属性信息的归并标记对源代码文件中的代码段进行标识;当进行代码归并时,根据归并条件中包含的属性值从所述源代码文件中查询对应的归并标记,读取查询到的归并标记所标识的代码段,根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并。在本发明中,提高了代码归并的效率和灵活性,并降低了误归并的概率。

Description

一种代码归并方法和设备
技术领域
本发明涉及软件开发领域,尤其涉及一种代码归并方法和设备。
背景技术
在大规模的软件开发项目中,代码文件一般都存在多个版本分支。在某一分支上因解决BUG(漏洞)或增加新特性而修改的代码,需要在某个时刻归并到其他分支上。代码归并虽然只是一些简单、重复的操作,但在版本分支多、版本升级频繁的情况下仍然会耗用程序员的大量时间,造成人力成本高、工作效率低、容易出错等后果。
现有代码归并方式主要包括以下几种:
(1)利用代码比对工具进行手动归并。程序员使用代码比对工具(如Beyond Compare)对比查看归并的源文件(以下简称源文件)和归并的目标文件(以下简称目标文件),找到代码的修改处,手动将修改的代码由源文件归并到目标文件。
(2)使用软件配置管理工具自带的代码归并功能,如ClearCase工具中的Merge(归并)功能,将修改的代码由源文件归并到目标文件。
(3)使用专用的文件比较合并工具,如Araxis Merge Professional等,将修改的代码由源文件归并到目标文件。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
(1)使用代码比对工具进行手动归并的方法中,由于这种归并方式需要程序员手动完成,工作效率较低,且由于代码归并由人工完成,代码归并的正确性难以保证,尤其是在修改较多的情况下,漏归并、错归并的现象难以避免。
(2)使用软件配置管理工具自带的代码归并功能进行归并的方法中,源文件中所有的代码修改都将被归并到目标文件,而实际中存在只归并部分修改的需求,即该方法灵活性较差;此外,使用该方法,一次只能归并一个文件;而一个BUG或新特性可能涉及到数十个文件的修改,逐个归并既不方便,效率也低。
(3)使用专用的文件比较合并工具进行归并的方法中,无法进行有选择的代码归并,灵活性较差;此外,由于此类工具仍然将源文件中所有的代码修改都将被归并到目标文件,可能导致目标文件中的部分代码被误修改。
发明内容
本发明的目的在于提供一种代码归并方法和设备,用以提高代码归并的效率和灵活性,并降低误归并的概率,为此,本发明实施例采用如下技术方案:
一种代码归并方法,应用于根据源代码文件对目标代码文件进行代码归并的过程,该方法包括以下步骤:
根据代码段发生改变的情况,使用包含有对应属性信息的归并标记对源代码文件中的代码段进行标识;
当进行代码归并时,根据归并条件中包含的属性值从所述源代码文件中查询对应的归并标记,读取查询到的归并标记所标识的代码段,根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并。
本发明实施例还提供一种代码归并设备,应用于根据源代码文件对目标代码文件进行代码归并的过程,所述源代码文件中包含有对该文件中的代码段进行标识的归并标记,所述归并标记包含有对应于所述代码段发生改变的情况的属性信息,该设备包括:
接收模块,用于接收归并条件;
查询模块,用于当进行代码归并时,根据归并条件中包含的属性值从所述源代码文件中查询对应的归并标记,并读取查询到的归并标记所标识的代码段;
归并模块,用于根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并。
与现有技术相比,本发明至少具有以下优点:
本发明的上述实施例,通过根据代码段发生改变的情况,使用包含有对应属性信息的归并标记对源代码文件中的代码段进行标识,当进行代码归并时,根据归并条件中包含的属性值从源代码文件中查询对应的归并标记,读取查询到的归并标记所标识的代码段,根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并,提高了代码归并的效率和灵活性,并降低了误归并的概率。
附图说明
图1为本发明实施例提供的代码归并方法流程示意图;
图2为本发明另一实施例提供的代码归并方法流程示意图;
图3为本发明实施例提供的代码归并设备的结构示意图。
具体实施方式
针对现有代码归并方法中存在的缺陷,本发明实施例提供了一种代码归并的技术方案,根据代码段发生改变的情况,使用包含有对应属性信息的归并标记对源代码文件中的代码段进行标识,当需要进行代码归并时,根据归并条件中包含的属性值从源代码文件中查询对应的归并标记,读取查询到的归并标记所标识的代码段,根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并,从而提高代码归并的效率和灵活性,降低误归并的概率。
为了使本领域技术人员更清楚地理解本发明实施例提供的技术方案,下面首先对本发明实施例提供的技术方案中的归并标记的概念及使用方法进行描述。
在本发明实施例提供的技术方案中,归并标记是添加在源文件中的一种特殊的、规范化的代码注释语句,用于指示待归并的代码在源代码文件(以下简称源文件)中的位置、归并的类型以及归并的原因等;该归并标记主要可以包括以下属性信息中的一个或多个:
(1)归并标识属性信息(以下简称归并标识)
归并标识用一种自定义的字符串(如“#MERGE”)表示,用于标明对应的代码注释为归并标记,即将归并标记和普通的代码注释区分开。
(2)归并类型属性信息(以下简称归并类型)
归并类型也可以用自定义的字符串表示,用于标明发生改变的代码文件中相应的代码段发生改变的类型。归并类型属性值可以根据代码文件中相应的代码发生的改变分为代码增加、代码删除和代码修改等。例如,代码增加可以用字符串“ADD”表示,代码删除和代码修改可以分别用字符串“DELETE”和“MODIFY”表示。进行代码归并时,不同的归并类型对应的归并操作不相同。
(3)归并原因属性信息(以下简称归并原因)
归并原因用于标明发生改变的代码文件中相应的代码段发生改变的原因,如为了修复BUG或增加新特性而改变对应的代码段。一般归并原因可以用BUG或新特性的编号表示,相应的归并原因属性值为BUG或新特性的编号值。
需要注意的是,本发明实施例提供的技术方案中,归并标记除了包括上述3个要素,还可以包括其他扩展字段。例如,归并标记中还可以包括用于标明发生改变的代码文件中相应的代码段发生改变的时间的字段。
归并标记作为特殊的代码注释,被添加在因BUG或新特性而发生改变的代码段前后。由于修复BUG或增加新特性时,可能涉及到多个代码文件的代码改变,而每个代码文件中又可能涉及多处改变。因此,在本发明实施例提供的技术方案中,把代码改变比较集中且连续的代码段作为归并的基本单位——归并代码段,归并代码段的前一行和后一行分别添加一条归并标记,即归并标记总是成对出现。前后两条归并标记有所不同,可以通过归并标识进行区分。例如,可以使用自定义的字符串“#MERGE START”和“#MERGE END”分别作为归并代码段前后的两条归并标记中的归并标识。
对于一个归并代码段,若此段代码完全是新增加的,则归并标记中的归并类型属性值置为代码增加(可以用字段“ADD”表示);若此段代码需要删除,则归并标记中的归并类型属性值则置成代码删除(可以用字段“DELETE”表示);若此段代码是在原有代码的基础上做了一些修改,则归并标识中的归并类型属性值置为代码修改(可以用字段“MODIFY”)。
其中,归并标记是在修复BUG或增加新特性的编码过程中添加的,而不是等到需要归并的时候才临时添加,且归并标记中需要包含归并原因(修复BUG或增加新特性)。此外,在添加归并标记时,需要保证与某个BUG修改或增加的新特性相关的所有代码都包含在归并代码段中,以防止代码漏归并的发生。
需要注意的是,在本发明实施例提供的技术方案中,当一段代码需要删除时,并不直接将该段代码从代码文件中删除,而是在该段代码的前后分别添加删除字段(即用于标明该段代码被删除)。例如,对于C/C++中的代码文件,当某段代码需要删除时,可以在该段代码前添加“# if 0”,并在该段代码后添加“# endif”,以将该段代码注释化(在运行相应的代码文件时,该段代码作为代码注释而存在),并分别在“# if 0”前后和“# endif”前后添加相应的归并标记(归并类型为代码删除)。当进行代码归并时,将“# if 0”、“# endif”及相应的归并标记插入到目标代码文件(以下简称目标文件)的相应位置。
下面将结合本申请的实施例中的附图,对本申请的实施例提供的技术方案中的代码归并方法进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的其他实施例,都属于本申请的实施例保护的范围。
如图1所示,为本发明实施例提供的代码归并方法流程示意图,该方法中代码文件中设置有上述归并标记,该方法可以包括以下步骤:
步骤101、读取待归并的源文件和目标文件。
具体的,在本发明实施例提供的技术方案中,代码归并设备的显示界面可以以命令行界面或图形化界面的形式向用户展示。当需要进行代码归并时,用户可以输入(命令行界面)或选择(图形化界面)源文件和目标文件。代码归并设备可以按行读取源文件和目标文件至内存中。其中,代码归并设备可以逐行读取源文件和目标文件中的代码行(包括注释行、空行),将其内容和属性存放于结构变量中。每一行为一个节点,插入到链表之中。行属性包括行号、行类型(代码行、注释行、归并行等)等。
步骤102、根据归并条件中包含的属性值从所述源代码文件中查询对应的归并标记,读取查询到的归并标记所标识的代码段。
具体的,代码归并设备将源文件和目标文件读取到内存中后,接收用户提交的归并条件,即用户想要针对哪些类型的改变进行代码归并或针对哪些BUG和/或新特性进行代码归并,该归并条件可以是用户想要归并的代码段对应归并类型属性值,和/或用户想要归并的代码段对应的BUG和/或新特性的编号值。代码归并设备获取到归并条件后,可以根据该归并条件中包含的属性值从源文件中查询对应的归并标记,并读取该归并标记对应的代码段(源代码段)。其中,可以预先设定一个特殊的属性值,用于指示对源文件中的所有归并代码段进行归并。
步骤103、根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并。
具体的,当查询到相应的归并标记,并读取到对应的代码段后,代码归并设备根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并。
其中,当归并标记中的归并类型属性值为代码增加时,代码归并设备根据源代码段的之前和/或之后的代码在目标文件中查找匹配位置,并将源代码段及归并标记插入到该匹配位置;
当归并标记中的归并类型属性值为代码删除时,根据源代码段在目标文件中查找对应的目标代码段,并在该目标代码段之前和之后分别插入相应的删除字段(如“# if 0”和“# endif”)及归并标记;
当归并标记中的归并类型属性值为代码修改时,根据源代码段之前和/或之后的代码在目标文件中查找对应的目标代码段,并用源代码段及归并标记在目标代码文件中替换该目标代码段。
其中,代码归并设备查询到对应的归并代码段后,在进行归并之前,还可以先判断该归并代码段是否已经归并,即判断目标文件中是否存在与该归并代码段完全相同的代码段(包括归并标记)。若判断为是,则确定该归并代码段已经归并,并对其他归并代码段进行判断;否则,确定该归并代码段未进行归并,根据该归并代码段及对应的归并标记,对目标代码文件进行归并。
当代码归并设备在目标文件中找不到进行归并的匹配位置时,则可以以归并日志的形式打印归并失败信息,以供用户分析失败原因,并进行相应的操作。
为了避免因发生归并错误而导致不能返回到归并前状态的状况的发生,在代码归并过程中,在输出归并后的目标文件的同时,还可以保存一份归并前的目标文件。
其中,当归并标记中还包括代码文件中相应代码段发生改变的时间时,归并条件中还可以包括发生改变的时间,即指示对特定时间发生改变的代码段进行归并。
需要注意的是,在本发明实施例提供的技术方案中,进行归并的源文件和目标文件可以是一个或多个,即本发明实施例提供的技术方案支持多文件归并。其中,待归并的源文件和目标文件一一对应(如具有相同的文件名)。当对多个文件进行归并时(如按文件夹的形式进行归并),轮询源文件夹和目标文件夹中的文件,并将源文件夹中某一文件的代码自动归并到目标文件夹中的对应目标文件(如同名文件)中。
下面结合具体的应用场景,对本发明实施例提供的代码归并的技术方案进行更加详细的描述。
如图2所示,为本发明另一实施例提供的代码归并方法流程示意图,该实施例中,代码文件A具有两个不同的版本A1和A2,代码文件A1中因BUG1和BUG2进行了相应代码段的改变,代码文件A2中因BUG3和BUG4进行相应的代码段的改变,用户需要将代码文件      A1(源文件)中针对BUG1和BUG2的归并代码段归并到代码文件A2(目标文件)中,且保证A2中保存有因BUG1、BUG2、BUG3以及BUG4而作的代码改变,其中,BUG1、BUG2、BUG3以及BUG4的编号分别为B1、B2、B3以及B4,针对BUG1的归并类型属性值为代码增加,针对BUG2的归并类型属性值为代码删除,该方法可以包括以下步骤:
步骤201、按行读取代码文件A1和A2至内存。
步骤202、获取用户的归并条件。
具体的,代码归并设备获取用户输入的需要归并的BUG的编号,即B1和B2。
步骤203、选择一个归并条件,并根据选择的归并条件中包含的属性值(B1或B2)在代码文件A1中查询对应的归并标记,并确定对应的归并代码段。
具体的,代码归并设备在代码文件A1中查找包含B1或B2的归并标记,并确定对应的归并代码段。其中,由于B1对应的归并类型属性值为代码增加,因此需要进行的归并的为包含B1的归并标记之间的代码段;而B2对应的归并类型属性值为代码删除,因此,需要进行的为包含B2的归并标记之间的删除字段(如“# if 0”和“#endif”),并确定该删除字段之间的代码段位需要删除的代码段。
步骤204、判断相应的归并代码段是否已归并。若判断为是,则转至步骤203;否则,转至步骤205。
具体的,判断目标文件(代码文件A2)中是否存在对应B1或B2的归并代码段以及归并标记。当代码文件A2中存在与对应B1的归并代码段相同的代码段以及相应的归并标记时,代码归并设备确定对应B1的归并代码段已归并;否则,确定对应B1的归并代码段未归并。
步骤205、根据归并代码段和/或该归并代码段之前和/或之后的代码在目标文件中查找匹配位置。
具体的,对于对应于B1的归并,代码归并设备根据归并代码段之前和/或之后的代码在代码文件A2中查找匹配位置,即查找到与该归并代码段之前和/或之后的代码相同的代码,确定相应的匹配位置;对于对应于B2的归并,代码设备根据归并代码段在代码文件A2中查找匹配位置,即查找到与该归并代码段相同的代码段,确定相应的匹配位置。其中,当在代码文件A2中未查找到匹配位置时,打印归并失败信息。
步骤206、进行代码归并,并判断是否还存在未选择的归并条件。若判断未是,则转至步骤203;否则,转至步骤207。
具体的,对于对应于B1的归并,代码归并设备将归并代码段及相应的归并标记插入到代码文件A2中相应的匹配位置;对于对应于B2的归并,分别将删除字段及相应的归并标记插入到代码文件A2中相应的代码段之前和之后。
步骤207、输出归并后的代码文件A2。
具体的,归并后的代码文件A2即为保存有因BUG1、BUG2、BUG3以及BUG4而作的代码改变的代码文件。
基于上述代码归并方法相同的发明构思,本发明实施例还提供了一种代码归并设备,应用于根据源代码文件对目标代码文件进行代码归并的过程,所述源代码文件中包含有对该文件中的代码段进行标识的归并标记,所述归并标记包含有对应于所述代码段发生改变的情况的属性信息。
如图3所示,为本发明实施例提供的代码归并设备的结构示意图,可以包括:
接收模块31,用于接收归并条件;
查询模块32,用于当进行代码归并时,根据归并条件中包含的属性值从所述源代码文件中查询对应的归并标记,并读取查询到的归并标记所标识的代码段;
归并模块33,用于根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并。
其中,所述属性信息中包含归并类型属性信息,所述归并条件包括归并类型属性值。
其中,所述属性信息中还包括归并原因属性信息,所述归并原因属性信息为漏洞BUG编号,用于表示归并原因为修改对应编号的BUG,或者所述归并原因属性信息为新特性编号,用于表示归并原因为增加对应编号的新特性;所述归并条件还包括BUG或新特性编号值。
其中,所述属性信息还包括用于标明代码段发生改变的时间信息;所述归并条件还包括代码段发生改变的时间。
其中,所述归并类型属性值包括:代码增加、代码删除或代码修改;
归并模块33具体用于,所述归并类型属性值为代码增加,根据读取的代码段的之前和/或之后的代码在目标代码文件中查找匹配位置,并将读取的代码段及归并标记插入到所述匹配位置;或,
所述归并类型属性值为代码删除,根据读取的代码段在目标代码文件中查找对应的目标代码段,并在所述目标代码段之前和之后分别插入相应的删除字段及归并标记;或,
所述归并类型属性值为代码修改,根据读取的代码段之前和/或之后的代码在目标文件中查找对应的目标代码段,并用读取的代码段及归并标记在所述目标代码文件中替换所述目标代码段。
其中,归并模块33具体用于,根据查询到的归并标记以及读取的代码段判断目标代码文件中是否存在相同的归并标记和代码段,并当目标代码文件中不存在相同的归并标记和代码段时,将该读取的代码段归并到目标代码文件中。
其中,所述归并标记为成对出现的注释语句,分别位于对应的代码段之前和之后。
其中,所述源代码文件和目标代码文件的数量为一个或多个,且所述源代码文件和目标代码文件一一对应;当所述源代码文件为多个时,
查询模块32具体用于,轮询所述源代码文件,并根据归并条件中包含的属性值从所述源代码文件查询对应的归并标记;
归并模块33具体用于,根据查询到的归并标记以及读取的代码段,分别对对应的目标代码文件进行归并。
本领域技术人员可以理解,本装置实施例中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化而位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (16)

1.一种代码归并方法,应用于根据源代码文件对目标代码文件进行代码归并的过程,其特征在于,该方法包括以下步骤:
根据代码段发生改变的情况,使用包含有对应属性信息的归并标记对源代码文件中的代码段进行标识;
当进行代码归并时,根据归并条件中包含的属性值从所述源代码文件中查询对应的归并标记,读取查询到的归并标记所标识的代码段,根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并。
2.如权利要求1所述的方法,其特征在于,所述属性信息中包含归并类型属性信息,所述归并条件包括归并类型属性值。
3.如权利要求2所述的方法,其特征在于,所述属性信息中还包括归并原因属性信息,所述归并原因属性信息为漏洞BUG编号,用于表示归并原因为修复对应编号的BUG,或者所述归并原因属性信息为新特性编号,用于表示归并原因为增加对应编号的新特性;所述归并条件还包括BUG或新特性编号值。
4.如权利要求2所述的方法,其特征在于,所述属性信息还包括用于标明代码段发生改变的时间信息;所述归并条件还包括代码段发生改变的时间。
5.如权利要求2所述的方法,其特征在于,所述归并类型属性值包括:代码增加、代码删除或代码修改;
所述根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并,具体为:
所述归并类型属性值为代码增加,根据读取的代码段的之前和/或之后的代码在目标代码文件中查找匹配位置,并将读取的代码段及归并标记插入到所述匹配位置;或,
所述归并类型属性值为代码删除,根据读取的代码段在目标代码文件中查找对应的目标代码段,并在所述目标代码段之前和之后分别插入相应的删除字段及归并标记;或,
所述归并类型属性值为代码修改,根据读取的代码段之前和/或之后的代码在目标文件中查找对应的目标代码段,并用读取的代码段及归并标记在所述目标代码文件中替换所述目标代码段。
6.如权利要求1-5任一项所述的方法,其特征在于,根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并,具体为:
根据查询到的归并标记以及读取的代码段判断目标代码文件中是否存在相同的归并标记和代码段,并当目标代码文件中不存在相同的归并标记和代码段时,将该读取的代码段归并到目标代码文件中。
7.如权利要求1-5任一项所述的方法,其特征在于,所述归并标记为成对出现的代码注释语句,分别位于对应的代码段之前和之后。
8.如权利要求1-5任一项所述的方法,其特征在于,所述源代码文件和目标代码文件的数量为一个或多个,且所述源代码文件和目标代码文件一一对应;
当所述源代码文件和目标代码文件的数量为多个时,
所述根据归并条件中包含的属性值从所述源代码文件中查询对应的归并标记,具体为:
轮询所述源代码文件,并根据归并条件中包含的属性值从所述源代码文件查询对应的归并标记;
所述根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并,具体为:
根据查询到的归并标记以及读取的代码段,分别对对应的目标代码文件进行归并。
9.一种代码归并设备,应用于根据源代码文件对目标代码文件进行代码归并的过程,其特征在于,所述源代码文件中包含有对该文件中的代码段进行标识的归并标记,所述归并标记包含有对应于所述代码段发生改变的情况的属性信息,该设备包括:
接收模块,用于接收归并条件;
查询模块,用于当进行代码归并时,根据归并条件中包含的属性值从所述源代码文件中查询对应的归并标记,并读取查询到的归并标记所标识的代码段;
归并模块,用于根据查询到的归并标记以及读取的代码段,对目标代码文件进行归并。
10.如权利要求9所述的设备,其特征在于,所述属性信息中包含归并类型属性信息,所述归并条件包括归并类型属性值。
11.如权利要求10所述的设备,其特征在于,所述属性信息中还包括归并原因属性信息,所述归并原因属性信息为漏洞BUG编号,用于表示归并原因为修复对应编号的BUG,或者所述归并原因属性信息为新特性编号,用于表示归并原因为增加对应编号的新特性;所述归并条件还包括BUG或新特性编号值。
12.如权利要求10所述的设备,其特征在于,所述属性信息还包括用于标明代码段发生改变的时间信息;所述归并条件还包括代码段发生改变的时间。
13.如权利要求10所述的设备,其特征在于,所述归并类型属性值包括:代码增加、代码删除或代码修改;
所述归并模块具体用于,所述归并类型属性值为代码增加,根据读取的代码段的之前和/或之后的代码在目标代码文件中查找匹配位置,并将读取的代码段及归并标记插入到所述匹配位置;或,
所述归并类型属性值为代码删除,根据读取的代码段在目标代码文件中查找对应的目标代码段,并在所述目标代码段之前和之后分别插入相应的删除字段及归并标记;或,
所述归并类型属性值为代码修改,根据读取的代码段之前和/或之后的代码在目标文件中查找对应的目标代码段,并用读取的代码段及归并标记在所述目标代码文件中替换所述目标代码段。
14.如权利要求9-13任一项所述的设备,其特征在于,所述归并模块具体用于,根据查询到的归并标记以及读取的代码段判断目标代码文件中是否存在相同的归并标记和代码段,并当目标代码文件中不存在相同的归并标记和代码段时,将该读取的代码段归并到目标代码文件中。
15.如权利要求9-13任一项所述的设备,其特征在于,所述归并标记为成对出现的代码注释语句,分别位于对应的代码段之前和之后。
16.如权利要求9-13任一项所述的设备,其特征在于,所述源代码文件和目标代码文件的数量为一个或多个,且所述源代码文件和目标代码文件一一对应;当所述源代码文件为多个时,
所述查询模块具体用于,轮询所述源代码文件,并根据归并条件中包含的属性值从所述源代码文件查询对应的归并标记;
所述归并模块具体用于,根据查询到的归并标记以及读取的代码段,分别对对应的目标代码文件进行归并。
CN201110251574.2A 2011-08-30 2011-08-30 一种代码归并方法和设备 Active CN102279749B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110251574.2A CN102279749B (zh) 2011-08-30 2011-08-30 一种代码归并方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110251574.2A CN102279749B (zh) 2011-08-30 2011-08-30 一种代码归并方法和设备

Publications (2)

Publication Number Publication Date
CN102279749A true CN102279749A (zh) 2011-12-14
CN102279749B CN102279749B (zh) 2014-01-29

Family

ID=45105217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110251574.2A Active CN102279749B (zh) 2011-08-30 2011-08-30 一种代码归并方法和设备

Country Status (1)

Country Link
CN (1) CN102279749B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077062A (zh) * 2012-11-30 2013-05-01 华为技术有限公司 一种代码改动的检测方法和装置
CN103092761A (zh) * 2013-02-05 2013-05-08 烽火通信科技股份有限公司 基于差异信息文件识别和检查修改代码块的方法及装置
CN103777930A (zh) * 2012-10-19 2014-05-07 阿里巴巴集团控股有限公司 程序内部信息的输出方法、获取方法、监测方法及其装置
CN104407901A (zh) * 2014-12-08 2015-03-11 北京国双科技有限公司 代码的添加方法和装置
CN104461578A (zh) * 2014-12-26 2015-03-25 广州唯品会信息科技有限公司 代码自动合并方法和系统
CN104462599A (zh) * 2014-12-31 2015-03-25 闻泰通讯股份有限公司 多分支管理模式下客制化文件的维护方法
CN104657140A (zh) * 2015-02-10 2015-05-27 广州华多网络科技有限公司 代码生成方法及装置
CN105302533A (zh) * 2014-07-25 2016-02-03 腾讯科技(深圳)有限公司 代码同步方法和装置
US9342285B2 (en) 2012-11-30 2016-05-17 Huawei Technologies Co., Ltd. Method and apparatus for detecting code change
CN106406918A (zh) * 2016-11-25 2017-02-15 华胜信泰信息产业发展有限公司 源代码自动合并方法和源代码自动合并装置
CN106445476A (zh) * 2015-08-11 2017-02-22 腾讯科技(深圳)有限公司 一种代码变更信息确定方法、装置及电子设备
CN106528071A (zh) * 2015-09-15 2017-03-22 阿里巴巴集团控股有限公司 目标代码的选取方法及装置
CN109255239A (zh) * 2018-09-11 2019-01-22 郑州云海信息技术有限公司 一种代码安全漏洞检查方法、装置、设备及存储介质
CN109739524A (zh) * 2019-01-09 2019-05-10 北京字节跳动网络技术有限公司 一种软件安装包的生成方法、装置、电子设备及存储介质
CN110427177A (zh) * 2019-06-18 2019-11-08 平安科技(深圳)有限公司 代码优化方法、装置、计算机装置及存储介质
CN112925552A (zh) * 2021-02-26 2021-06-08 北京百度网讯科技有限公司 代码处理方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321275A (zh) * 1998-07-14 2001-11-07 电脑联合想象公司 与源代码控制系统交互的方法和设备
US20100153421A1 (en) * 2008-12-15 2010-06-17 Electronics And Telecommunications Research Institute Device and method for detecting packed pe file

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321275A (zh) * 1998-07-14 2001-11-07 电脑联合想象公司 与源代码控制系统交互的方法和设备
US20100153421A1 (en) * 2008-12-15 2010-06-17 Electronics And Telecommunications Research Institute Device and method for detecting packed pe file

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘玲: "支持需求跟踪的版本控制技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 4, 15 April 2009 (2009-04-15) *
郑晓霞等: "自动化版本控制在实际项目中的应用", 《信息技术》, vol. 27, no. 12, 31 December 2003 (2003-12-31) *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103777930A (zh) * 2012-10-19 2014-05-07 阿里巴巴集团控股有限公司 程序内部信息的输出方法、获取方法、监测方法及其装置
CN103077062A (zh) * 2012-11-30 2013-05-01 华为技术有限公司 一种代码改动的检测方法和装置
WO2014082422A1 (zh) * 2012-11-30 2014-06-05 华为技术有限公司 一种代码改动的检测方法和装置
US10019240B2 (en) 2012-11-30 2018-07-10 Huawei Technologies Co., Ltd. Method and apparatus for detecting code change
US9342285B2 (en) 2012-11-30 2016-05-17 Huawei Technologies Co., Ltd. Method and apparatus for detecting code change
CN103077062B (zh) * 2012-11-30 2016-08-03 华为技术有限公司 一种代码改动的检测方法和装置
CN103092761A (zh) * 2013-02-05 2013-05-08 烽火通信科技股份有限公司 基于差异信息文件识别和检查修改代码块的方法及装置
CN103092761B (zh) * 2013-02-05 2015-05-27 烽火通信科技股份有限公司 基于差异信息文件识别和检查修改代码块的方法及装置
CN105302533B (zh) * 2014-07-25 2020-04-07 腾讯科技(深圳)有限公司 代码同步方法和装置
CN105302533A (zh) * 2014-07-25 2016-02-03 腾讯科技(深圳)有限公司 代码同步方法和装置
CN104407901A (zh) * 2014-12-08 2015-03-11 北京国双科技有限公司 代码的添加方法和装置
CN104407901B (zh) * 2014-12-08 2018-04-06 北京国双科技有限公司 代码的添加方法和装置
CN104461578A (zh) * 2014-12-26 2015-03-25 广州唯品会信息科技有限公司 代码自动合并方法和系统
CN104461578B (zh) * 2014-12-26 2018-09-11 广州品唯软件有限公司 代码自动合并方法和系统
CN104462599B (zh) * 2014-12-31 2017-11-28 闻泰通讯股份有限公司 多分支管理模式下客制化文件的维护方法
CN104462599A (zh) * 2014-12-31 2015-03-25 闻泰通讯股份有限公司 多分支管理模式下客制化文件的维护方法
CN104657140B (zh) * 2015-02-10 2018-01-09 广州华多网络科技有限公司 代码生成方法及装置
CN104657140A (zh) * 2015-02-10 2015-05-27 广州华多网络科技有限公司 代码生成方法及装置
CN106445476A (zh) * 2015-08-11 2017-02-22 腾讯科技(深圳)有限公司 一种代码变更信息确定方法、装置及电子设备
CN106445476B (zh) * 2015-08-11 2020-04-07 腾讯科技(深圳)有限公司 一种代码变更信息确定方法、装置及电子设备
CN106528071A (zh) * 2015-09-15 2017-03-22 阿里巴巴集团控股有限公司 目标代码的选取方法及装置
CN106528071B (zh) * 2015-09-15 2019-08-13 阿里巴巴集团控股有限公司 目标代码的选取方法及装置
CN106406918B (zh) * 2016-11-25 2020-02-28 华胜信泰信息产业发展有限公司 源代码自动合并方法和源代码自动合并装置
CN106406918A (zh) * 2016-11-25 2017-02-15 华胜信泰信息产业发展有限公司 源代码自动合并方法和源代码自动合并装置
CN109255239A (zh) * 2018-09-11 2019-01-22 郑州云海信息技术有限公司 一种代码安全漏洞检查方法、装置、设备及存储介质
CN109739524A (zh) * 2019-01-09 2019-05-10 北京字节跳动网络技术有限公司 一种软件安装包的生成方法、装置、电子设备及存储介质
CN109739524B (zh) * 2019-01-09 2022-04-15 北京字节跳动网络技术有限公司 一种软件安装包的生成方法、装置、电子设备及存储介质
CN110427177A (zh) * 2019-06-18 2019-11-08 平安科技(深圳)有限公司 代码优化方法、装置、计算机装置及存储介质
CN112925552A (zh) * 2021-02-26 2021-06-08 北京百度网讯科技有限公司 代码处理方法、装置、设备及存储介质
CN112925552B (zh) * 2021-02-26 2023-07-28 北京百度网讯科技有限公司 代码处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN102279749B (zh) 2014-01-29

Similar Documents

Publication Publication Date Title
CN102279749B (zh) 一种代码归并方法和设备
CN111291024B (zh) 数据处理方法、装置、电子设备及存储介质
CN101504672B (zh) 一种动态配置实体数据表的方法和系统
CN103412868B (zh) 文书生成方法及装置
US20160306612A1 (en) Determining errors and warnings corresponding to a source code revision
CN109446218A (zh) Sql语句生成方法、装置及计算机可读存储介质
CN104133772A (zh) 一种自动生成测试数据的方法
CN105302533A (zh) 代码同步方法和装置
CN104317788A (zh) Android多国语言翻译方法和装置
CN104331285A (zh) 一种代码自动生成方法及系统
CN110457666B (zh) 一种报表生成方法、系统及电子设备和存储介质
CN104866985A (zh) 快递单号识别方法、装置及系统
CN104850565A (zh) 一种基于k-v存储系统的元数据管理方法
CN104461531A (zh) 一种报表系统自定义函数的实现方法
CN111124872A (zh) 基于差异代码分析的分支检测方法、装置及存储介质
CN108446115A (zh) 一种代码复用的方法及装置
CN105677805A (zh) 一种利用protobuf的数据存储、读取方法及装置
CN111026756A (zh) 一种表单动态生成和关联查询的方法
CN110941547A (zh) 自动化测试用例库管理方法、装置、介质及电子设备
CN103107919B (zh) 一种网络资源建模方法和系统
KR101588375B1 (ko) 데이터베이스 관리 방법 및 데이터베이스 관리 시스템
CN111651397B (zh) 一种访问PXIe外设模块的方法和设备
CN105138562A (zh) 关系型数据库的数据处理方法及装置
CN104636471A (zh) 一种程序代码的查找方法及装置
CN109697234B (zh) 实体的多属性信息查询方法、装置、服务器和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant