CN107766075A - 代码合并的处理方法及装置 - Google Patents

代码合并的处理方法及装置 Download PDF

Info

Publication number
CN107766075A
CN107766075A CN201610702607.3A CN201610702607A CN107766075A CN 107766075 A CN107766075 A CN 107766075A CN 201610702607 A CN201610702607 A CN 201610702607A CN 107766075 A CN107766075 A CN 107766075A
Authority
CN
China
Prior art keywords
modification
code
inventory
type
generation
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
CN201610702607.3A
Other languages
English (en)
Other versions
CN107766075B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201610702607.3A priority Critical patent/CN107766075B/zh
Publication of CN107766075A publication Critical patent/CN107766075A/zh
Application granted granted Critical
Publication of CN107766075B publication Critical patent/CN107766075B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring

Abstract

本发明公开了一种代码合并的处理方法,包括:获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单;在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单;将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分。本发明还公开了一种代码合并的处理装置。本发明中用户仅仅需要对差异部分进行人工检查,来查找在合并过程中产生的冲突,而不需要对所有提交记录进行检查。因此,可以有效地降低检查过程的复杂度,并提高检查效率,节约时间和人力成本。

Description

代码合并的处理方法及装置
技术领域
本发明涉及软件开发技术领域,尤其涉及一种代码合并的处理方法及装置。
背景技术
目前,在软件开发过程中,一般由多个项目组在同一个项目上并行开发,开发完成后,需要将分支代码合并至主干代码中。如果修改点比较多,在合并代码时会产生很多冲突。现有技术中一般通过人工的方式对代码合并产生的冲突进行检查,检查过程比较复杂,耗时耗力。
发明内容
本发明的主要目的在于提供一种代码合并的处理方法及装置,旨在解决在对代码合并产生的冲突进行检查时,检查过程比较复杂,耗时耗力的技术问题。
本发明提供的代码合并的处理方法包括:
获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单;
在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单;
将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分。
优选地,所述根据所述第一代码提交记录生成第一修改清单的步骤包括:根据所述第一代码提交记录生成第一代码变更文件,对所述第一代码变更文件进行解析,获得所述第一代码变更文件记录的修改类型,并根据所述第一代码变更文件记录的修改类型生成第一修改清单;
所述根据所述第二代码提交记录生成第二修改清单的步骤包括:根据所述第二代码提交记录生成第二代码变更文件,对所述第二代码变更文件进行解析,获得所述第二代码变更文件记录的修改类型,并根据所述第二代码变更文件记录的修改类型生成第二修改清单。
优选地,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
在对所述第一代码变更文件解析的过程中,在侦测到删除类型的第一修改清单生成时,删除之前产生的所有第一修改清单;
在对所述第二代码变更文件解析的过程中,在侦测到删除类型的第二修改清单生成时,删除之前产生的所有第二修改清单。
优选地,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
在对所述第一代码变更文件解析的过程中,在每次侦测到增加类型的第一修改清单时,忽略之后产生的所有第一修改清单或结束解析过程;
在对所述第二代码变更文件解析的过程中,在每次侦测到增加类型的第二修改清单时,忽略之后产生的所有第二修改清单或结束解析过程。
优选地,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
在对所述第一代码变更文件解析的过程中,在侦测到至少两个替换类型的第一修改清单时,将各个所述第一修改清单合并为一个替换类型的第一修改清单;在侦测到至少两个修改类型的第一修改清单时,将各个所述第一修改清单合并为一个修改类型的第一修改清单;
在对所述第二代码变更文件解析的过程中,在侦测到至少两个替换类型的第二修改清单时,将各个所述第二修改清单合并为一个替换类型的第二修改清单;在侦测到至少两个修改类型的第二修改清单时,将各个所述第二修改清单合并为一个修改类型的第二修改清单。
此外,本发明进一步提供的代码合并的处理装置包括:
第一生成模块,获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单;
第二生成模块,用于在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单;
提取模块,用于将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分。
优选地,所述第一生成模块还用于根据所述第一代码提交记录生成第一代码变更文件,对所述第一代码变更文件进行解析,获得所述第一代码变更文件记录的修改类型,并根据所述第一代码变更文件记录的修改类型生成第一修改清单;
所述第二生成模块还用于根据所述第二代码提交记录生成第二代码变更文件,对所述第二代码变更文件进行解析,获得所述第二代码变更文件记录的修改类型,并根据所述第二代码变更文件记录的修改类型生成第二修改清单。
优选地,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
所述第一生成模块还用于在对所述第一代码变更文件解析的过程中,在侦测到删除类型的第一修改清单生成时,删除之前产生的所有第一修改清单;
所述第二生成模块还用于在对所述第二代码变更文件解析的过程中,在侦测到删除类型的第二修改清单生成时,删除之前产生的所有第二修改清单。
优选地,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
所述第一生成模块还用于在对所述第一代码变更文件解析的过程中,在每次侦测到增加类型的第一修改清单时,忽略之后产生的所有第一修改清单或结束解析过程;
所述第二生成模块还用于在对所述第二代码变更文件解析的过程中,在每次侦测到增加类型的第二修改清单时,忽略之后产生的所有第二修改清单或结束解析过程。
优选地,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
所述第一生成模块还用于在对所述第一代码变更文件解析的过程中,在侦测到至少两个替换类型的第一修改清单时,将各个所述第一修改清单合并为一个替换类型的第一修改清单;在侦测到至少两个修改类型的第一修改清单时,将各个所述第一修改清单合并为一个修改类型的第一修改清单;
所述第二生成模块还用于在对所述第二代码变更文件解析的过程中,在侦测到至少两个替换类型的第二修改清单时,将各个所述第二修改清单合并为一个替换类型的第二修改清单;在侦测到至少两个修改类型的第二修改清单时,将各个所述第二修改清单合并为一个修改类型的第二修改清单。
本发明提供的代码合并的处理方法及装置,获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单,并在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单,最后将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分,从而用户仅仅需要对差异部分进行人工检查,来查找在合并过程中产生的冲突,而不需要对所有提交记录进行检查。因此,可以有效地降低检查过程的复杂度,并提高检查效率,节约时间和人力成本。
附图说明
图1为本发明代码合并的处理方法第一实施例的流程示意图;
图2位本发明代码合并的处理方法中第一代码变更文件的格式示意图;
图3为本发明代码合并的处理装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种代码合并的处理方法。可以应用于将分支代码合并至主干代码的处理中。由于在将分支代码合并至主干代码时会产生很多冲突,采用本方法可以更有助于用户快速查找冲突。以下各个实施例均以将分支代码合并至主干代码为例进行说明。
参照图1,图1为本发明代码合并的处理方法第一实施例的流程示意图,本发明提出的代码合并的处理方法包括以下步骤:
步骤S10,获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单;
在本实施例中,可以利用现有的svn系统完成代码合并。在开发分支代码的过程中,svn系统上会生成分支代码的若干代码提交记录。在分支代码开发完成时,获取分支代码在开发过程中的第一代码提交记录。
可选的,第一修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型,所述第一修改清单的数量为至少一个,且每一所述第一修改清单对应一种类型。因此,第一修改清单的数量最多为四个。
步骤S20,在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单;
在本实施例中,可以利用现有的svn系统完成分支代码与主干代码合并。在合并代码的过程中,svn系统上会生成若干与合并相关的代码提交记录。在合并代码完成后,获取在合并过程中的第二代码提交记录。
可选的,第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型,所述第二修改清单的数量为至少一个,且每一所述第二修改清单对应一种类型。因此,第二修改清单的数量最多为四个。
步骤S30,将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分。
在本实施例中,在对第一修改清单和第二修改清单比较的过程中,可以删除第一修改清单和第二修改清单中相同的记录。相同的记录可以理解为操作类型和文件路径全都相同。在记录相同时,表示此次合并的文件列表是正确的。对于不相同的记录,即为所述差异部分。用户仅仅需要对差异部分进行人工检查,来查找在合并过程中产生的冲突,而不需要对所有提交记录进行检查。因此,可以有效地降低检查过程的复杂度,并提高检查效率,节约时间和人力成本。
本发明提供的代码合并的处理方法,通过获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单,并在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单,最后将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分,从而用户仅仅需要对差异部分进行人工检查,来查找在合并过程中产生的冲突,而不需要对所有提交记录进行检查。因此,可以有效地降低检查过程的复杂度,并提高检查效率,节约时间和人力成本。
进一步的,基于本发明代码合并的处理方法的第一实施例,本发明还提出了代码合并的处理方法的第二实施例,在本实施例中,所述根据所述第一代码提交记录生成第一修改清单的步骤包括:根据所述第一代码提交记录生成第一代码变更文件,对所述第一代码变更文件进行解析,获得所述第一代码变更文件记录的修改类型,并根据所述第一代码变更文件记录的修改类型生成第一修改清单;
所述根据所述第二代码提交记录生成第二修改清单的步骤包括:根据所述第二代码提交记录生成第二代码变更文件,对所述第二代码变更文件进行解析,获得所述第二代码变更文件记录的修改类型,并根据所述第二代码变更文件记录的修改类型生成第二修改清单。
在本实施例中,可以利用svn系统生成与第一代码提交记录对应的第一代码变更文件。如图2所示,图2位本发明代码合并的处理方法中第一代码变更文件的格式示意图,第一代码变更文件的记录格式为:【修改类型文件目录】。
同样的,也可以利用svn系统生成与第二代码提交记录对应的第二代码变更文件。第二代码变更文件的记录格式与第一代码变更文件的记录格式相同,即第二代码变更文件的记录格式为:【修改类型文件目录】,具体可以参照图2。
在本实施例中,修改类型可以包括增加、删除、替换和修改四种类型。
本实施例中,通过对代码变更文件进行解析来生成修改清单,能够进一步提高差异部分获取的准确性,从而进一步有效地降低检查过程的复杂度,并提高检查效率,节约时间和人力成本。
进一步的,为了进一步提高差异部分获取的准确性,基于本发明代码合并的处理方法的第二实施例,本发明还提出了代码合并的处理方法的第三实施例,在本实施例中,在对所述第一代码变更文件解析的过程中,采用预设过滤规则对所述第一修改清单进行过滤;
在对所述第二代码变更文件解析的过程中,采用预设过滤规则对所述第二修改清单进行过滤。
预设过滤规则可以包括以下几种方式:
方式一,在对所述第一代码变更文件解析的过程中,在侦测到删除类型的第一修改清单生成时,删除之前产生的所有第一修改清单;
在对所述第二代码变更文件解析的过程中,在侦测到删除类型的第二修改清单生成时,删除之前产生的所有第二修改清单。
在方式一中,例如,在对第一代码变更文件解析的过程中,若先生成了第一修改清单1和第一修改清单2,且第一修改清单1为替换类型,第一修改清单2为修改类型,然后又生成了第一修改清单3,第一修改清单3的类型为删除类型,因此,需要将之前生成的第一修改清单1和第一修改清单2全部删除,仅仅保留第一修改清单3。并继续进行解析。
对第二代码变更文件解析的过程同第一代码变更文件,在此不再赘述。
本实施例能够删除无效的修改清单,缩减修改清单的数量,因此进一步提高了对差异部分获取的准确性。
方式二,在对所述第一代码变更文件解析的过程中,在每次侦测到增加类型的第一修改清单时,忽略之后产生的所有第一修改清单或结束解析过程;
在对所述第二代码变更文件解析的过程中,在每次侦测到增加类型的第二修改清单时,忽略之后产生的所有第二修改清单或结束解析过程。
在方式二中,例如,在对第一代码变更文件解析的过程中,若先生成了第一修改清单1和第一修改清单2,且第一修改清单1为替换类型,第一修改清单2为增加类型,因此,可以直接结束解析过程,最终获得的第一修改清单包括第一修改清单1和第一修改清单2。或者,还可以不结束解析过程,继续进行解析,若在继续解析过程中又新生成了第一修改清单3,第一修改清单3的类型为修改类型,因此可以直接将第一修改清单3删除,最终获得的第一修改清单包括第一修改清单1和第一修改清单2。
对第二代码变更文件解析的过程同第一代码变更文件,在此不再赘述。
本实施例能够忽略无效的修改清单,缩减修改清单的数量,因此进一步提高了对差异部分获取的准确性。
方式三,在对所述第一代码变更文件解析的过程中,在侦测到至少两个替换类型的第一修改清单时,将各个所述第一修改清单合并为一个替换类型的第一修改清单;在侦测到至少两个修改类型的第一修改清单时,将各个所述第一修改清单合并为一个修改类型的第一修改清单;
在对所述第二代码变更文件解析的过程中,在侦测到至少两个替换类型的第二修改清单时,将各个所述第二修改清单合并为一个替换类型的第二修改清单;在侦测到至少两个修改类型的第二修改清单时,将各个所述第二修改清单合并为一个修改类型的第二修改清单。
在方式三中,例如,在对第一代码变更文件解析的过程中,若先生成了第一修改清单1和第一修改清单2,且第一修改清单1为替换类型,第一修改清单2为修改类型。若在继续解析的过程中又新生成了第一修改清单3,第一修改清单3的类型为修改类型,因此可以直接将第一修改清单3与第一修改清单2合并,例如,可以将第一修改清单3的内容合并至第一修改清单2中。若在继续解析的过程中又新生成了第一修改清单4,第一修改清单4的类型为替换类型,因此可以直接将第一修改清单4与第一修改清单1合并,例如,可以将第一修改清单4的内容合并至第一修改清单1中。最终获得的第一修改清单包括第一修改清单1和第一修改清单2。
本实施例能够缩减修改清单的数量,因此进一步提高了对差异部分获取的准确性。
本发明进一步提供一种代码合并的处理装置。可以应用于将分支代码合并至主干代码的处理中。由于在将分支代码合并至主干代码时会产生很多冲突,采用本方法可以更有助于用户快速查找冲突。以下各个实施例均以将分支代码合并至主干代码为例进行说明。
参照图3,图3为本发明代码合并的处理装置第一实施例的功能模块示意图,本发明提供的代码合并的处理装置包括:
第一生成模块10,获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单;
在本实施例中,可以利用现有的svn系统完成代码合并。在开发分支代码的过程中,svn系统上会生成分支代码的若干代码提交记录。在分支代码开发完成时,获取分支代码在开发过程中的第一代码提交记录。
可选的,第一修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型,所述第一修改清单的数量为至少一个,且每一所述第一修改清单对应一种类型。因此,第一修改清单的数量最多为四个。
第二生成模块20,用于在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单;
在本实施例中,可以利用现有的svn系统完成分支代码与主干代码合并。在合并代码的过程中,svn系统上会生成若干与合并相关的代码提交记录。在合并代码完成后,获取在合并过程中的第二代码提交记录。
可选的,第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型,所述第二修改清单的数量为至少一个,且每一所述第二修改清单对应一种类型。因此,第二修改清单的数量最多为四个。
提取模块30,用于将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分。
在本实施例中,在对第一修改清单和第二修改清单比较的过程中,可以删除第一修改清单和第二修改清单中相同的记录。相同的记录可以理解为操作类型和文件路径全都相同。在记录相同时,表示此次合并的文件列表是正确的。对于不相同的记录,即为所述差异部分。用户仅仅需要对差异部分进行人工检查,来查找在合并过程中产生的冲突,而不需要对所有提交记录进行检查。因此,可以有效地降低检查过程的复杂度,并提高检查效率,节约时间和人力成本。
本发明提供的代码合并的处理装置,通过获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单,并在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单,最后将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分,从而用户仅仅需要对差异部分进行人工检查,来查找在合并过程中产生的冲突,而不需要对所有提交记录进行检查。因此,可以有效地降低检查过程的复杂度,并提高检查效率,节约时间和人力成本。
进一步的,基于本发明代码合并的处理装置的第一实施例,本发明还提出了代码合并的处理装置的第二实施例,在本实施例中,所述第一生成模块10还用于根据所述第一代码提交记录生成第一代码变更文件,对所述第一代码变更文件进行解析,获得所述第一代码变更文件记录的修改类型,并根据所述第一代码变更文件记录的修改类型生成第一修改清单;
所述第二生成模块20还用于根据所述第二代码提交记录生成第二代码变更文件,对所述第二代码变更文件进行解析,获得所述第二代码变更文件记录的修改类型,并根据所述第二代码变更文件记录的修改类型生成第二修改清单。
在本实施例中,可以利用svn系统生成与第一代码提交记录对应的第一代码变更文件。如图2所示,第一代码变更文件的记录格式为:【修改类型文件目录】。
同样的,也可以利用svn系统生成与第二代码提交记录对应的第二代码变更文件。第二代码变更文件的记录格式与第一代码变更文件的记录格式相同,即第二代码变更文件的记录格式为:【修改类型文件目录】,具体可以参照图2。
在本实施例中,修改类型可以包括增加、删除、替换和修改四种类型。
本实施例中,通过对代码变更文件进行解析来生成修改清单,能够进一步提高差异部分获取的准确性,从而进一步有效地降低检查过程的复杂度,并提高检查效率,节约时间和人力成本。
进一步的,为了进一步提高差异部分获取的准确性,基于本发明代码合并的处理装置的第二实施例,本发明还提出了代码合并的处理装置的第三实施例,在本实施例中,所述第一生成模块10还用于在对所述第一代码变更文件解析的过程中,采用预设过滤规则对所述第一修改清单进行过滤;
所述第二生成模块20还用于在对所述第二代码变更文件解析的过程中,采用预设过滤规则对所述第二修改清单进行过滤。
预设过滤规则可以包括以下几种方式:
方式一,
所述第一生成模块10还用于在对所述第一代码变更文件解析的过程中,在侦测到删除类型的第一修改清单生成时,删除之前产生的所有第一修改清单;
所述第二生成模块20还用于在对所述第二代码变更文件解析的过程中,在侦测到删除类型的第二修改清单生成时,删除之前产生的所有第二修改清单。
在方式一中,例如,在对第一代码变更文件解析的过程中,若先生成了第一修改清单1和第一修改清单2,且第一修改清单1为替换类型,第一修改清单2为修改类型,然后又生成了第一修改清单3,第一修改清单3的类型为删除类型,因此,需要将之前生成的第一修改清单1和第一修改清单2全部删除,仅仅保留第一修改清单3。并继续进行解析。
对第二代码变更文件解析的过程同第一代码变更文件,在此不再赘述。
本实施例能够删除无效的修改清单,缩减修改清单的数量,因此进一步提高了对差异部分获取的准确性。
方式二,
所述第一生成模块10还用于在对所述第一代码变更文件解析的过程中,在每次侦测到增加类型的第一修改清单时,忽略之后产生的所有第一修改清单或结束解析过程;
所述第二生成模块20还用于在对所述第二代码变更文件解析的过程中,在每次侦测到增加类型的第二修改清单时,忽略之后产生的所有第二修改清单或结束解析过程。
在方式二中,例如,在对第一代码变更文件解析的过程中,若先生成了第一修改清单1和第一修改清单2,且第一修改清单1为替换类型,第一修改清单2为增加类型,因此,可以直接结束解析过程,最终获得的第一修改清单包括第一修改清单1和第一修改清单2。或者,还可以不结束解析过程,继续进行解析,若在继续解析过程中又新生成了第一修改清单3,第一修改清单3的类型为修改类型,因此可以直接将第一修改清单3删除,最终获得的第一修改清单包括第一修改清单1和第一修改清单2。
对第二代码变更文件解析的过程同第一代码变更文件,在此不再赘述。
本实施例能够忽略无效的修改清单,缩减修改清单的数量,因此进一步提高了对差异部分获取的准确性。
所述第一生成模块10还用于在对所述第一代码变更文件解析的过程中,在侦测到至少两个替换类型的第一修改清单时,将各个所述第一修改清单合并为一个替换类型的第一修改清单;在侦测到至少两个修改类型的第一修改清单时,将各个所述第一修改清单合并为一个修改类型的第一修改清单;
所述第二生成模块20还用于在对所述第二代码变更文件解析的过程中,在侦测到至少两个替换类型的第二修改清单时,将各个所述第二修改清单合并为一个替换类型的第二修改清单;在侦测到至少两个修改类型的第二修改清单时,将各个所述第二修改清单合并为一个修改类型的第二修改清单。
在方式三中,例如,在对第一代码变更文件解析的过程中,若先生成了第一修改清单1和第一修改清单2,且第一修改清单1为替换类型,第一修改清单2为修改类型。若在继续解析的过程中又新生成了第一修改清单3,第一修改清单3的类型为修改类型,因此可以直接将第一修改清单3与第一修改清单2合并,例如,可以将第一修改清单3的内容合并至第一修改清单2中。若在继续解析的过程中又新生成了第一修改清单4,第一修改清单4的类型为替换类型,因此可以直接将第一修改清单4与第一修改清单1合并,例如,可以将第一修改清单4的内容合并至第一修改清单1中。最终获得的第一修改清单包括第一修改清单1和第一修改清单2。
本实施例能够缩减修改清单的数量,因此进一步提高了对差异部分获取的准确性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种代码合并的处理方法,其特征在于,所述代码合并的处理方法包括:
获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单;
在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单;
将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分。
2.如权利要求1所述的代码合并的处理方法,其特征在于,所述根据所述第一代码提交记录生成第一修改清单的步骤包括:根据所述第一代码提交记录生成第一代码变更文件,对所述第一代码变更文件进行解析,获得所述第一代码变更文件记录的修改类型,并根据所述第一代码变更文件记录的修改类型生成第一修改清单;
所述根据所述第二代码提交记录生成第二修改清单的步骤包括:根据所述第二代码提交记录生成第二代码变更文件,对所述第二代码变更文件进行解析,获得所述第二代码变更文件记录的修改类型,并根据所述第二代码变更文件记录的修改类型生成第二修改清单。
3.如权利要求2所述的代码合并的处理方法,其特征在于,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
在对所述第一代码变更文件解析的过程中,在侦测到删除类型的第一修改清单生成时,删除之前产生的所有第一修改清单;
在对所述第二代码变更文件解析的过程中,在侦测到删除类型的第二修改清单生成时,删除之前产生的所有第二修改清单。
4.如权利要求2所述的代码合并的处理方法,其特征在于,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
在对所述第一代码变更文件解析的过程中,在每次侦测到增加类型的第一修改清单时,忽略之后产生的所有第一修改清单或结束解析过程;
在对所述第二代码变更文件解析的过程中,在每次侦测到增加类型的第二修改清单时,忽略之后产生的所有第二修改清单或结束解析过程。
5.如权利要求2所述的代码合并的处理方法,其特征在于,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
在对所述第一代码变更文件解析的过程中,在侦测到至少两个替换类型的第一修改清单时,将各个所述第一修改清单合并为一个替换类型的第一修改清单;在侦测到至少两个修改类型的第一修改清单时,将各个所述第一修改清单合并为一个修改类型的第一修改清单;
在对所述第二代码变更文件解析的过程中,在侦测到至少两个替换类型的第二修改清单时,将各个所述第二修改清单合并为一个替换类型的第二修改清单;在侦测到至少两个修改类型的第二修改清单时,将各个所述第二修改清单合并为一个修改类型的第二修改清单。
6.一种代码合并的处理装置,其特征在于,所述代码合并的处理装置包括:
第一生成模块,获取分支代码在开发过程中的第一代码提交记录,并根据所述第一代码提交记录生成第一修改清单;
第二生成模块,用于在所述分支代码和主干代码合并完成后,获取在合并过程中的第二代码提交记录,并根据所述第二代码提交记录生成第二修改清单;
提取模块,用于将第一修改清单与所述第二修改清单进行比较,提取差异部分,以供用户处理所述差异部分。
7.如权利要求6所述的代码合并的处理装置,其特征在于,所述第一生成模块还用于根据所述第一代码提交记录生成第一代码变更文件,对所述第一代码变更文件进行解析,获得所述第一代码变更文件记录的修改类型,并根据所述第一代码变更文件记录的修改类型生成第一修改清单;
所述第二生成模块还用于根据所述第二代码提交记录生成第二代码变更文件,对所述第二代码变更文件进行解析,获得所述第二代码变更文件记录的修改类型,并根据所述第二代码变更文件记录的修改类型生成第二修改清单。
8.如权利要求7所述的代码合并的处理装置,其特征在于,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
所述第一生成模块还用于在对所述第一代码变更文件解析的过程中,在侦测到删除类型的第一修改清单生成时,删除之前产生的所有第一修改清单;
所述第二生成模块还用于在对所述第二代码变更文件解析的过程中,在侦测到删除类型的第二修改清单生成时,删除之前产生的所有第二修改清单。
9.如权利要求7所述的代码合并的处理装置,其特征在于,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
所述第一生成模块还用于在对所述第一代码变更文件解析的过程中,在每次侦测到增加类型的第一修改清单时,忽略之后产生的所有第一修改清单或结束解析过程;
所述第二生成模块还用于在对所述第二代码变更文件解析的过程中,在每次侦测到增加类型的第二修改清单时,忽略之后产生的所有第二修改清单或结束解析过程。
10.如权利要求7所述的代码合并的处理装置,其特征在于,所述第一修改清单和第二修改清单的类型包括增加类型、删除类型、替换类型和/或修改类型;
所述第一生成模块还用于在对所述第一代码变更文件解析的过程中,在侦测到至少两个替换类型的第一修改清单时,将各个所述第一修改清单合并为一个替换类型的第一修改清单;在侦测到至少两个修改类型的第一修改清单时,将各个所述第一修改清单合并为一个修改类型的第一修改清单;
所述第二生成模块还用于在对所述第二代码变更文件解析的过程中,在侦测到至少两个替换类型的第二修改清单时,将各个所述第二修改清单合并为一个替换类型的第二修改清单;在侦测到至少两个修改类型的第二修改清单时,将各个所述第二修改清单合并为一个修改类型的第二修改清单。
CN201610702607.3A 2016-08-22 2016-08-22 代码合并的处理方法及装置 Active CN107766075B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610702607.3A CN107766075B (zh) 2016-08-22 2016-08-22 代码合并的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610702607.3A CN107766075B (zh) 2016-08-22 2016-08-22 代码合并的处理方法及装置

Publications (2)

Publication Number Publication Date
CN107766075A true CN107766075A (zh) 2018-03-06
CN107766075B CN107766075B (zh) 2021-06-25

Family

ID=61264029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610702607.3A Active CN107766075B (zh) 2016-08-22 2016-08-22 代码合并的处理方法及装置

Country Status (1)

Country Link
CN (1) CN107766075B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582288A (zh) * 2018-11-30 2019-04-05 阿里巴巴集团控股有限公司 一种生产配置回流的方法、系统和存储介质
CN111694599A (zh) * 2020-06-11 2020-09-22 北京首汽智行科技有限公司 一种产品发布方法
CN111752819A (zh) * 2019-03-29 2020-10-09 广州市百果园信息技术有限公司 一种异常监控方法、装置、系统、设备和存储介质
CN112445514A (zh) * 2019-09-05 2021-03-05 腾讯科技(深圳)有限公司 一种代码评审方法及相关产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514166A (zh) * 2012-06-15 2014-01-15 阿里巴巴集团控股有限公司 Sql检查方法与装置
CN104123126A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 一种用于生成合并冲突记录列表的方法和装置
US20140344557A1 (en) * 2013-05-14 2014-11-20 Noblis, Inc. Method and system to automatically enforce a hybrid branching strategy
CN105302716A (zh) * 2014-07-30 2016-02-03 腾讯科技(深圳)有限公司 合流开发模式下的测试方法、装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514166A (zh) * 2012-06-15 2014-01-15 阿里巴巴集团控股有限公司 Sql检查方法与装置
CN104123126A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 一种用于生成合并冲突记录列表的方法和装置
US20140344557A1 (en) * 2013-05-14 2014-11-20 Noblis, Inc. Method and system to automatically enforce a hybrid branching strategy
CN105302716A (zh) * 2014-07-30 2016-02-03 腾讯科技(深圳)有限公司 合流开发模式下的测试方法、装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582288A (zh) * 2018-11-30 2019-04-05 阿里巴巴集团控股有限公司 一种生产配置回流的方法、系统和存储介质
CN109582288B (zh) * 2018-11-30 2022-02-15 创新先进技术有限公司 一种生产配置回流的方法、系统和存储介质
CN111752819A (zh) * 2019-03-29 2020-10-09 广州市百果园信息技术有限公司 一种异常监控方法、装置、系统、设备和存储介质
CN111752819B (zh) * 2019-03-29 2024-04-05 广州市百果园信息技术有限公司 一种异常监控方法、装置、系统、设备和存储介质
CN112445514A (zh) * 2019-09-05 2021-03-05 腾讯科技(深圳)有限公司 一种代码评审方法及相关产品
CN111694599A (zh) * 2020-06-11 2020-09-22 北京首汽智行科技有限公司 一种产品发布方法

Also Published As

Publication number Publication date
CN107766075B (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN107766075A (zh) 代码合并的处理方法及装置
CN109445834A (zh) 基于抽象语法树的程序代码相似性快速比较方法
CN101976253B (zh) 一种中文变异文本匹配识别方法
CN103593799B (zh) 自然人信息设置方法、系统及相应的好友推荐方法、系统
CN103049458B (zh) 一种修正用户词库的方法和系统
JP5064510B2 (ja) デジタル文書を管理するコンピュータベースツール
CN109582799A (zh) 知识样本数据集的确定方法、装置及电子设备
CN109656999A (zh) 大数据量的数据同步方法、设备、存储介质及装置
CN108694191A (zh) 在bim模型中快速检索构件信息的方法
CN110109681B (zh) 不同平台间代码的转换方法及系统
CN106960143A (zh) 用户账号的识别方法及装置、存储介质、电子设备
CN103761189A (zh) 一种测试用例管理方法及系统
CN112463774B (zh) 文本数据的去重方法、设备及存储介质
CN113239365B (zh) 一种基于知识图谱的漏洞修复方法
CN106776731A (zh) 一种搜索实现方法、装置和系统
CN110019038A (zh) 文件引用分析方法、装置、设备及计算机可读存储介质
CN105488471B (zh) 一种字形识别方法及装置
US7159171B2 (en) Structured document management system, structured document management method, search device and search method
KR102096017B1 (ko) 추상 구문 트리를 기반으로 소스코드를 임베딩하여 소프트웨어 버그를 예측하는 방법 및 시스템
CN106547726A (zh) 一种基于文档的自动化审查方法及审查装置
CN106227661A (zh) 数据处理方法及装置
CN113721889B (zh) 需求追踪关系构建方法、装置及计算机可读存储介质
CN111221967A (zh) 一种基于区块链架构的语言数据分类存储系统
CN106569986A (zh) 字符串替换方法和装置
CN114968663A (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
GR01 Patent grant
GR01 Patent grant