代码自动合并方法和系统的制作方法

文档序号:6640412阅读:312来源:国知局
代码自动合并方法和系统的制作方法
【专利摘要】本发明提供一种代码自动合并方法和系统,该方法包括如下步骤:接收新修改的代码文件;其中,所述新修改的代码文件中记录有代码的修改位置、修改时间和合并路径;根据所述合并路径查找待合并的代码文件;按照所述修改位置对应的修改时间的先后顺序,将所述修改位置对应的代码合并到所述待合并的代码文件中,获得更新后的代码文件。本发明能快速自动地对代码进行合并,合并过程无须人工参与,合并效率高。
【专利说明】代码自动合并方法和系统

【技术领域】
[0001] 本发明涉及代码处理【技术领域】,特别是涉及一种代码自动合并方法,以及一种代 码自动合并系统。

【背景技术】
[0002] 目前在进行开发时,当某一个版本具备上线条件后,需要在上一个已发布的版本 基础上进行发布,才能够避免出现版本相互覆盖,因此往往需要对版本之间的代码进行合 并。
[0003] 传统技术中经常是人工操作第三方合并工具进行代码合并。例如,TortoiseSVN 是Subversion版本控制系统的一个客户端,利用该工具,人工操作合并代码的步骤为 checkout (检出代码到本地)、merge (合并指定代码到本地)、commit (提交代码到版本 库)、remark (备注提交信息)。
[0004] 这种方式的缺点是:由于系统因代码库庞大数据量,检索耗时和传输问题等导致 速度操作速度缓慢;需专业人员或者经过一定的培训后才懂得使用。操作步骤繁琐,需按一 定的顺序完成一系列的操作,并且人工操作执行效率低、操作步骤繁琐,人为操作易导致代 码合并错误、遗漏、低效等问题。


【发明内容】

[0005] 基于此,本发明提供一种代码自动合并方法和系统,能快速自动地对代码进行合 并,合并过程无须人工参与,合并效率高。
[0006] 一种代码自动合并方法,包括如下步骤:
[0007] 接收新修改的代码文件;其中,所述新修改的代码文件中记录有代码的修改位置、 修改时间和合并路径;
[0008] 根据所述合并路径查找待合并的代码文件;
[0009] 按照所述修改位置对应的修改时间的先后顺序,将所述修改位置对应的代码合并 到所述待合并的代码文件中,获得更新后的代码文件。
[0010] -种代码自动合并系统,包括:
[0011] 接收模块,用于接收新修改的代码文件;其中,所述新修改的代码文件中记录有代 码的修改位置、修改时间和合并路径;
[0012] 第一查找模块,用于根据所述合并路径查找待合并的代码文件;
[0013] 第一合并模块,用于按照所述修改位置对应的修改时间的先后顺序,将所述修改 位置对应的代码合并到所述待合并的代码文件中,获得更新后的代码文件。
[0014] 上述代码自动合并方法和系统,接收用户提交的新修改的代码文件,由于代码文 件中记录有代码的修改位置、修改时间和合并路径,可根据合并路径查找到待合并的代码 文件,接着根据所述修改位置对应的修改时间的先后顺序,将所述修改位置对应的代码合 并到所述待合并的代码文件中,从而获得更新后的代码文件;本发明根据提交的合并路径 查找到对应的待合并代码文件,可根据修改位置和修改时间实现代码的自动合并,无需人 工参与,代码合并速率较高。

【专利附图】

【附图说明】
[0015] 图1为本发明代码自动合并方法在第一实施方式中的流程示意图。
[0016] 图2为本发明代码自动合并方法在第四实施方式中获取开始合并的版本号及结 束合并的版本号的界面示意图。
[0017] 图3为本发明代码自动合并系统在第一实施方式中的结构示意图。

【具体实施方式】
[0018] 下面结合实施例及附图对本发明作进一步详细说明,但本发明的实施方式不限于 此。
[0019] 如图1所示,是本发明一种代码自动合并方法在第一实施方式中的流程示意图, 包括如下步骤:
[0020] Sl 1、接收新修改的代码文件;其中,所述新修改的代码文件中记录有代码的修改 位置、修改时间和合并路径;
[0021] S12、根据所述合并路径查找待合并的代码文件;
[0022] S13、按照所述修改位置对应的修改时间的先后顺序,将所述修改位置对应的代码 合并到所述待合并的代码文件中,获得更新后的代码文件;
[0023] 本实施例的代码自动合并方法,接收用户提交的新修改的代码文件,由于代码文 件中记录有代码的修改位置、修改时间和合并路径,可根据合并路径查找到待合并的代码 文件,接着根据所述修改位置对应的修改时间的先后顺序,将所述修改位置对应的代码合 并到所述待合并的代码文件中,从而获得更新后的代码文件;本实施例根据提交的合并路 径查找到对应的待合并代码文件,可根据修改位置和修改时间实现代码的自动合并,无需 人工参与,代码合并速率较高。
[0024] 对于步骤S11、接收新修改的代码文件;其中,所述新修改的代码文件中记录有代 码的修改位置、修改时间和合并路径;
[0025] 当用户修改代码文件时,实时记录代码文件中代码的修改位置和修改时间,同时 记录该新修改的代码文件的合并路径;所述合并路径,可为版本库中某一域名下的分支路 径,版本库中保存有所有的代码文件,按照不同的项目分类,对应不同的域名,每个域名下 对应有多个分支,每个分支下储存相应的代码文件。
[0026] 对于步骤S12、根据所述合并路径查找待合并的代码文件;
[0027] 根据新修改的代码文件中指定的合并路径,从版本库中查找对应的待合并的代码 文件;本实施例中,待合并的代码文件无需在用户的本地端处理,相对现有技术,可显著减 少处理流程。
[0028] 对于步骤S13、按照所述修改位置对应的修改时间的先后顺序,将所述修改位置对 应的代码合并到所述待合并的代码文件中,获得更新后的代码文件;
[0029] 本实施例中,对于新修改的代码文件,可能有多个不同的修改位置,新修改的代码 文件由于记录了各个修改位置对应的修改时间,在合并时,根据各个修改位置对应的修改 时间的先后顺序进行代码文件的合并,将所述修改位置对应的代码合并到所述待合并的代 码文件中,获得更新后的代码文件。
[0030] 以下是本发明一种代码自动合并方法的第二实施方式,本实施方式与第一实施方 式的区别在于:
[0031] 所述修改位置为所述新修改的代码文件的修改行的行号;
[0032] 所述将所述修改位置对应的代码合并到所述待合并的代码文件中的步骤包括:
[0033] 将所述新修改的代码文件中所述行号对应的代码,与所述待合并的代码文件中所 述行号对应的代码进行对比;
[0034] 若两者不同,则将所述新修改的代码文件中所述行号对应的代码覆盖掉所述待合 并的代码文件中所述行号对应的代码;
[0035] 本实施例中,所述修改位置为新修改的代码文件中修改行的行号;通过记录被修 改的代码所在的行号,能精确地记录代码文件的修改位置;在合并时,首先根据修改行的行 号,对比在新修改的代码文件该行号的代码和待合并的代码文件中该行号对应的代码,两 者不同,则表示该行的代码修改过,将其覆盖掉所述待合并的代码文件中所述行号对应的 代码,完成代码文件合并的过程;本实施例通过记录修改行的行号,可精确地实现代码的合 并,减少代码文件合并的错误率。
[0036] 以下是本发明一种代码自动合并方法的第三实施方式,本实施方式与第一实施方 式的区别在于:
[0037] 所述接收提交的新修改的代码文件的步骤包括:
[0038] 从Subversion版本控制系统接收所述新修改的代码文件,通过所述Subversion 版本控制系统获得所述修改位置和修改时间,并将所述修改位置和修改时间添加到所述新 修改的代码文件中;
[0039] 本实施例的代码文件的修改,通过Subversion版本控制系统进行管理,利用源代 码的版本控制机制(每个文件、每行代码,通过Subversion做好版本记录),根据不同用户 提交的代码进行管理并做版本记录;因此通过获取版本库中的日志记录,通过比较不同用 户修改的代码以时间节点为准进行先后顺序的合并,将修改前后的文件进行匹配合并成新 版本的代码文件,并重新提交给源代码库,无须手工合并代码。
[0040] 以下是本发明一种代码自动合并方法的第四实施方式,本实施方式与第一实施 方式的区别在于:所述新修改的代码文件中还记录有版本号;本实施例的方法还可包括步 骤:
[0041] 获取开始合并的版本号及结束合并的版本号;
[0042] 在接收的新修改的代码文件中查找从所述开始合并的版本号到结束合并的版本 号之间对应的所有新修改的代码文件;
[0043] 根据所述版本号的排列顺序,按照所述修改位置对应的修改时间的先后顺序,将 所述修改位置对应的代码合并到所述待合并的代码文件中,获得更新后的代码文件。
[0044] 本实施例中的方法,可以根据用户要求,接收多份新修改的代码文件,同时将多份 新修改的代码文件合并至同一份待合并的代码文件中;具体的,每份新修改的代码文件记 录对应的版本号,每个版本号的排列顺序代表该文件的修改顺序;用户可提交多份新修改 的代码文件后再执行合并,获取用户指定开始合并的版本号及结束合并的版本号,查找从 开始合并的版本号到结束合并的版本号之间对应的多份新修改的代码文件,根据所述版本 号的排列顺序,按照所述修改位置对应的修改时间的先后顺序,将所述修改位置对应的代 码合并到所述待合并的代码文件中,获得更新后的代码文件;本实施例方法能实现批量获 取多份新修改的代码文件,并同时将多份新修改的代码文件进行合并,显著地提高文件合 并的效率。
[0045] 如图2所示,示出了获取开始合并的版本号及结束合并的版本号的示意图;本实 施方式中,可通过生成可视化界面,在该可视化界面中包括域名框、分支框、开始版本框、结 束版本框,域名与分支为待合并的代码文件的路径,可通过域名框和分支框选择需要合并 的代码文件,开始版本号和结束版本号可在新修改的代码文件提交后输入,将人工操作以 可视化实现,在后台,可通过命令脚本执行上述的合并过程,准确性更高,节省人力成本。
[0046] 本实施例的代码自动合并方法,可适用于window版本的代码合并,也可适用于 WEB版本的代码合并;
[0047] Windows版本结构和示例:通过自动化的检查流程,进行同步工作,导出日志。
[0048]

【权利要求】
1. 一种代码自动合并方法,其特征在于,包括如下步骤: 接收新修改的代码文件;其中,所述新修改的代码文件中记录有代码的修改位置、修改 时间和合并路径; 根据所述合并路径查找待合并的代码文件; 按照所述修改位置对应的修改时间的先后顺序,将所述修改位置对应的代码合并到所 述待合并的代码文件中,获得更新后的代码文件。
2. 根据权利要求1所述的代码自动合并方法,其特征在于,所述修改位置为所述新修 改的代码文件中修改行的行号; 所述将所述修改位置对应的代码合并到所述待合并的代码文件中的步骤包括: 将所述新修改的代码文件中所述行号对应的代码,与所述待合并的代码文件中所述行 号对应的代码进行对比; 若两者不同,则将所述新修改的代码文件中所述行号对应的代码覆盖掉所述待合并的 代码文件中所述行号对应的代码。
3. 根据权利要求1或2所述的代码自动合并方法,其特征在于,所述接收提交的新修改 的代码文件的步骤包括: 从Subversion版本控制系统接收所述新修改的代码文件,通过所述Subversion版本 控制系统获得所述修改位置和修改时间,并将所述修改位置和修改时间添加到所述新修改 的代码文件中。
4. 根据权利要求3所述的代码自动合并方法,其特征在于,所述新修改的代码文件中 还记录有版本号;所述方法还包括步骤: 获取开始合并的版本号及结束合并的版本号; 在接收的新修改的代码文件中查找从所述开始合并的版本号到结束合并的版本号之 间对应的所有新修改的代码文件; 根据所述版本号的排列顺序,按照所述修改位置对应的修改时间的先后顺序,将所述 修改位置对应的代码合并到所述待合并的代码文件中,获得更新后的代码文件。
5. -种代码自动合并系统,其特征在于,包括: 接收模块,用于接收新修改的代码文件;其中,所述新修改的代码文件中记录有代码的 修改位置、修改时间和合并路径; 第一查找模块,用于根据所述合并路径查找待合并的代码文件; 第一合并模块,用于按照所述修改位置对应的修改时间的先后顺序,将所述修改位置 对应的代码合并到所述待合并的代码文件中,获得更新后的代码文件。
6. 根据权利要求5所述的代码自动合并系统,其特征在于,所述修改位置为所述新修 改的代码文件的修改行的行号; 所述第一合并模块包括: 对比模块,用于将所述新修改的代码文件中所述行号对应的代码,与所述待合并的代 码文件中所述行号对应的代码进行对比; 覆盖模块,用于当所述对比模块判断两者不同时,将所述新修改的代码文件中所述行 号对应的代码覆盖掉所述待合并的代码文件中所述行号对应的代码。
7. 根据权利要求5或6所述的代码自动合并系统,其特征在于,所述接收模块还用于: 从Subversion版本控制系统接收所述新修改的代码文件,通过所述Subversion版本控制 系统获得所述修改位置和修改时间,并将所述修改位置和修改时间添加到所述新修改的代 码文件中。
8.根据权利要求7所述的代码自动合并系统,其特征在于,所述新修改的代码文件中 还记录有版本号;所述系统还包括: 获取模块,用于获取开始合并的版本号及结束合并的版本号; 第二查找模块,用于在接收的新修改的代码文件中查找从所述开始合并的版本号到结 束合并的版本号之间对应的所有新修改的代码文件; 第二合并模块,用于根据所述版本号的排列顺序,按照所述修改位置对应的修改时间 的先后顺序,将所述修改位置对应的代码合并到所述待合并的代码文件中,获得更新后的 代码文件。
【文档编号】G06F17/30GK104461578SQ201410837536
【公开日】2015年3月25日 申请日期:2014年12月26日 优先权日:2014年12月26日
【发明者】苏青章, 陈武锋 申请人:广州唯品会信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1