代码管理系统及方法技术方案

技术编号:13942656 阅读:47 留言:0更新日期:2016-10-29 20:05
本发明专利技术公开了一种代码管理方法,包括:获取基于源代码中被修改的修改文件所生成的补丁包;解析所述补丁包获取修改文件的路径,根据所述修改文件的路径获取源代码中对应的原始文件;解析所述补丁包获取修改标识,根据修改标识及预置的匹配修改规则对所述原始文件进行相应修改,得到修改后的源代码。本发明专利技术还公开了一种代码管理系统。本发明专利技术提高了根据修改文件的补丁包得到修改后的源代码的效率及准确率。

【技术实现步骤摘要】

本专利技术涉及软件开发
,尤其涉及一种代码管理系统及方法
技术介绍
在软件开发过程中,一般需要多个开发人员进行协调合作,每个开发人员负责不同的模块开发,最终对各个开发人员的代码进行合成而完成开发。以Android整机软件开发为例,在板级支持包(Board Support Package,BSP)、架构(framework)和应用(app)侧的功能开发时需要异地、各个部门开发人员的协调合作。在程序联调过程中,需要在本地源代码中合入其他开发人员的补丁包(patch包),由于是同一个模块的开发,不同的开发人员可能会修改同一个源文件同一个函数的不同位置。一方面使用命令合入patch包时,会造成代码的冲突,准确率较低;另一方面手动修改代码,既降低了软件的开发效率,又无法保证合入功能的正确性。
技术实现思路
本专利技术的主要目的在于提供一种代码管理系统及方法,旨在提高根据修改文件的补丁包得到修改后的源代码的效率及准确率。为实现上述目的,本专利技术提供了一种代码管理系统,包括:补丁包获取模块,用于获取基于源代码中被修改的修改文件所生成的补丁包;原始文件获取模块,用于解析所述补丁包获取修改文件的路径,根据所述修改文件的路径获取源代码中对应的原始文件;修改模块,用于解析所述补丁包获取修改标识,根据修改标识及预置的匹配修改规则对所述原始文件进行相应修改,得到修改后的源代码。可选地,所述代码管理系统还包括:修改文件获取模块,用于获取针对所述源代码的已修改的修改文件;第一设定模块,用于获取所述修改文件中以第一标识开头的字段,将所述第一标识开头的字段所在的行设定为起始修改行;记录模块,用于记录所述起始修改行之前的指定行代码、所述修改文件的路径和所述修改文件中被修改的代码,以及记录所述修改文件中的被修改的类、被修改的方法和被修改的行为;第二设定模块,用于获取所述修改文件中以第二标识开头的字段,将所述第二标识开头的字段所在的行设定为结束修改行,并记录所述结束修改行之后的指定行代码;生成模块,用于将所记录的内容进行存储,生成补丁包。可选地,所述修改模块包括:解析单元,用于解析所述补丁包,获取所述起始修改行之前的指定行代码、所述结束修改行之后的指定行代码、所述修改文件中被修改的代码,以及所述修改文件中被修改的类、被修改的方法和被修改的行为;确定单元,用于根据被修改的类、被修改的方法和被修改的行为确定在所述原始文件的位置,在所述位置内根据所述修改文件中的起始修改行之前的指定行代码,在所述原始文件中确定对应的起始行,以及根据所述结束修改行之后的指定行代码,在所述原始文件中确定对应的结束行;修改单元,用于根据所述修改文件中被修改的代码,在所述源代码中修改所述原始文件的起始行与结束行之间的代码。可选地,所述修改单元还用于,将所述修改文件中被修改的代码增加至所述源代码中所述原始文件的起始行与结束行之间;或者,将所述源代码中所述原始文件的起始行与结束行之间,与所述修改文件中被修改的代码相同的代码删除;或者,将所述修改文件中被修改的代码替换所述源代码中所述原始文件的起始行与结束行之间的代码。可选地,所述代码管理系统还包括:更新模块,用于删除所述补丁包,获取基于修改后的源代码所生成的新的补丁包,从所述新的补丁包中获取新的修改文件的路径,根据所述新的修改文件的路径获取修改后的源代码中对应的文件;解析所述新的补丁包获取新的修改标识,根据所述新的修改标识及预置的匹配修改规则对所述文件进行相应修改。此外,为实现上述目的,本专利技术还提供了一种代码管理方法,包括:获取基于源代码中被修改的修改文件所生成的补丁包;解析所述补丁包获取修改文件的路径,根据所述修改文件的路径获取源代码中对应的原始文件;解析所述补丁包获取修改标识,根据修改标识及预置的匹配修改规则对所述原始文件进行相应修改,得到修改后的源代码。可选地,所述获取基于源代码中被修改的修改文件所生成的补丁包之前包括:获取针对所述源代码的已修改的修改文件;获取所述修改文件中以第一标识开头的字段,将所述第一标识开头的字段所在的行设定为起始修改行;记录所述起始修改行之前的指定行代码、所述修改文件的路径和所述修改文件中被修改的代码,以及记录所述修改文件中的被修改的类、被修改的方法和被修改的行为;获取所述修改文件中以第二标识开头的字段,将所述第二标识开头的字段所在的行设定为结束修改行,并记录所述结束修改行之后的指定行代码;将所记录的内容进行存储,生成补丁包。可选地,所述解析所述补丁包获取修改标识,根据修改标识及预置的匹配修改规则对所述原始文件进行相应修改包括:解析所述补丁包,获取所述起始修改行之前的指定行代码、所述结束修改行之后的指定行代码、所述修改文件中被修改的代码,以及所述修改文件中被修改的类、被修改的方法和被修改的行为;根据被修改的类、被修改的方法和被修改的行为确定在所述原始文件的位置,在所述位置内根据所述修改文件中的起始修改行之前的指定行代码,在所述原始文件中确定对应的起始行,以及根据所述结束修改行之后的指定行代码,在所述原始文件中确定对应的结束行;根据所述修改文件中被修改的代码,在所述源代码中修改所述原始文件的起始行与结束行之间的代码。可选地,根据所述修改文件中被修改的代码,在所述源代码中修改所述原始文件的起始行与结束行之间的代码包括:将所述修改文件中被修改的代码增加至所述源代码中所述原始文件的起始行与结束行之间;或者,将所述源代码中所述原始文件的起始行与结束行之间,与所述修改文件中被修改的代码相同的代码删除;或者,将所述修改文件中被修改的代码替换所述源代码中所述原始文件的起始行与结束行之间的代码。可选地,所述解析所述补丁包获取修改标识,根据修改标识及预置的匹配修改规则对所述原始文件进行相应修改,得到修改后的源代码之后包括:删除所述补丁包,获取基于修改后的源代码所生成的新的补丁包,从所述新的补丁包中获取新的修改文件的路径,根据所述新的修改文件的路径获取修改后的源代码中对应的文件;解析所述新的补丁包获取新的修改标识,根据所述新的修改标识及预置的匹配修改规则对所述文件进行相应修改。本专利技术实施例提供的代码管理系统及方法,通过解析基于源代码中被修改的修改文件所生成的补丁包,根据补丁包中记录的内容,获取修改文件的路径来获取源代码中对应的原始文件,以及根据修改标识按照预置的匹配修改规则对原始文件进行相应修改,以得到修改后的源代码。使得通过修改标识记录修改文件中被修改位置,可以准确地在对应的原始文件中还原修改文件,相对于手动对照修改原始文件,提高了根据修改文件的补丁包得到修改后的源代码的效率及准确率。附图说明图1为本专利技术代码管理系统第一实施例的功能模块示意图;图2为本专利技术代码管理系统第二实施例的功能模块示意图;图3为本专利技术代码管理系统第三实施例的功能模块示意图;图4为本专利技术代码管理方法第一实施例的流程示意图;图5为本专利技术代码管理方法第二实施例的流程示意图;图6为本专利技术代码管理方法第三实施例的流程示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,示出了本专利技术一种代码管理系统第一实施例。该实施例的代码管理本文档来自技高网...

【技术保护点】
一种代码管理系统,其特征在于,所述代码管理系统包括:补丁包获取模块,用于获取基于源代码中被修改的修改文件所生成的补丁包;原始文件获取模块,用于解析所述补丁包获取修改文件的路径,根据所述修改文件的路径获取源代码中对应的原始文件;修改模块,用于解析所述补丁包获取修改标识,根据修改标识及预置的匹配修改规则对所述原始文件进行相应修改,得到修改后的源代码。

【技术特征摘要】
1.一种代码管理系统,其特征在于,所述代码管理系统包括:补丁包获取模块,用于获取基于源代码中被修改的修改文件所生成的补丁包;原始文件获取模块,用于解析所述补丁包获取修改文件的路径,根据所述修改文件的路径获取源代码中对应的原始文件;修改模块,用于解析所述补丁包获取修改标识,根据修改标识及预置的匹配修改规则对所述原始文件进行相应修改,得到修改后的源代码。2.如权利要求1所述的代码管理系统,其特征在于,所述代码管理系统还包括:修改文件获取模块,用于获取针对所述源代码的已修改的修改文件;第一设定模块,用于获取所述修改文件中以第一标识开头的字段,将所述第一标识开头的字段所在的行设定为起始修改行;记录模块,用于记录所述起始修改行之前的指定行代码、所述修改文件的路径和所述修改文件中被修改的代码,以及记录所述修改文件中的被修改的类、被修改的方法和被修改的行为;第二设定模块,用于获取所述修改文件中以第二标识开头的字段,将所述第二标识开头的字段所在的行设定为结束修改行,并记录所述结束修改行之后的指定行代码;生成模块,用于将所记录的内容进行存储,生成补丁包。3.如权利要求2所述的代码管理系统,其特征在于,所述修改模块包括:解析单元,用于解析所述补丁包,获取所述起始修改行之前的指定行代码、所述结束修改行之后的指定行代码、所述修改文件中被修改的代码,以及所述修改文件中被修改的类、被修改的方法和被修改的行为;确定单元,用于根据被修改的类、被修改的方法和被修改的行为确定在所述原始文件的位置,在所述位置内根据所述修改文件中的起始修改行之前的指定行代码,在所述原始文件中确定对应的起始行,以及根据所述结束修改行之后的指定行代码,在所述原始文件中确定对应的结束行;修改单元,用于根据所述修改文件中被修改的代码,在所述源代码中修改所述原始文件的起始行与结束行之间的代码。4.如权利要求3所述的代码管理系统,其特征在于,所述修改单元还用于,将所述修改文件中被修改的代码增加至所述源代码中所述原始文件的起始行与结束行之间;或者,将所述源代码中所述原始文件的起始行与结束行之间,与所述修改文件中被修改的代码相同的代码删除;或者,将所述修改文件中被修改的代码替换所述源代码中所述原始文件的起始行与结束行之间的代码。5.如权利要求1-4任一项所述的代码管理系统,其特征在于,所述代码管理系统还包括:更新模块,用于删除所述补丁包,获取基于修改后的源代码所生成的新的补丁包,从所述新的补丁包中获取新的修改文件的路径,根据所述新的修改文件的路径获取修改后的源代码中对应的文件;解析所述新的补丁包获取新的修改标识,根据所述新的修改标识及预置的匹配修改规则对所述文件进行相应修改。6.一种代码管理方法,其特征在于,所述代码管理方法...

【专利技术属性】
技术研发人员:马子平
申请(专利权)人:努比亚技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1