基于git源代码冲突的文件合并方法及系统的制作方法_2

文档序号:9432610阅读:来源:国知局
r>[0044]例子:
[0045]版本I文件:pr0.project内容如下
[0046]〈filelist〉
[0047]〈item〉/ 原有文件〈/item〉
[0048]〈item〉/ 原有文件〈/item〉
[0049]〈/filelist〉
[0050]版本2文件:程序员I添加文件1:
[0051]〈filelist〉
[0052]〈item〉/ 原有文件〈/item〉
[0053]〈item〉/ 文件 l〈/item>
[0054]〈item〉/ 原有文件〈/item〉
[0055]〈/filelist〉
[0056]版本3文件:程序员2添加文件2:
[0057]〈filelist〉
[0058]〈item〉/ 原有文件〈/item〉
[0059]〈item〉/ 文件 2〈/item>
[0060]〈item〉/ 原有文件〈/item〉
[0061]〈/filelist〉
[0062]通过git merge命令合并后,生成临时文件3
[0063]〈filelist〉
[0064]〈item〉/ 原有文件〈/item〉
[0065]〈〈〈〈〈〈〈HEAD
[0066]〈item〉/ 文件 2〈/item>
[0067]= = = = = = =
[0068]〈item〉/ 文件 l〈/item>
[0069]>>>>>>>master
[0070]〈item〉/ 原有文件〈/item〉
[0071]〈/filelist〉
[0072]此外,因为不同版本文件同时对同一行源代码进行修改时,由于无法确定合并顺序,即无法确定是否是对原位置进行两种不同的修改,合并后可能无法编译。但是,在本发明实施例中,使用的编译器自动校验,可以自动对合并结果校验,如果合并后可以编译通过,则表示合并结果是正确的。
[0073]如图4所示,本发明实施例三提供一种基于git源代码冲突的文件合并系统100,包括:
[0074]修改模块110,用于分别获取对第一文件的修改信息,以生成第二文件及第三文件;
[0075]合并模块120,用于合并上述三份文件,生成冲突文件;
[0076]删除模块130,用于参照第一文件,检测所述冲突文件中的新增行,并删除合并标记;
[0077]结果模块140,用于对所述冲突文件进行编译检查,获得第四文件。
[0078]如图5所示,其中所述合并模块120包括:
[0079]比对单元121,用于参照第一文件,分别逐行比较第二文件与第三文件,检测出新增行;
[0080]合并单元122,用于通过合并工具将第二文件及第三文件中的新增行合并到第一文件的对应位置中,生成冲突文件。
[0081]其中,所述删除模块130包括:
[0082]定位单元131,用于参照第一文件,分别逐行检测冲突文件中的新增行,以定位合并标记;
[0083]删除单元132,用于删除冲突文件的合并标记。
[0084]其中,所述结果板块140包括:
[0085]调用单元141,用于调用编译命令对所述冲突文件进行编译检查;
[0086]判断单元142,用于判断编译检查是否通过
[0087]以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种基于git源代码冲突的文件合并方法,其特征在于,包括: S1:分别获取对第一文件的修改信息,以生成第二文件及第三文件; 52:合并上述三份文件,生成冲突文件; 53:参照第一文件,检测所述冲突文件中的新增行,并删除合并标记; 54:对所述冲突文件进行编译检查,获得第四文件。2.根据权利要求1所述基于git源代码冲突的文件合并方法,其特征在于,步骤S2具体为: 521:参照第一文件,分别逐行比较第二文件与第三文件,检测出新增行; 522:使用合并工具将第二文件及第三文件中的新增行合并到第一文件的对应位置中,生成冲突文件。3.根据权利要求1所述基于git源代码冲突的文件合并方法,其特征在于,步骤S3具体为: 531:参照第一文件,分别逐行检测冲突文件中的新增行,以定位合并标记; 532:删除冲突文件的合并标记。4.根据权利要求1所述基于git源代码冲突的文件合并方法,其特征在于,步骤S4具体为: 541:调用编译命令对所述冲突文件进行编译检查; 542:判断编译检查是否通过; 若是,则执行S43:确认合并成功,标记所述冲突文件为第四文件; 反之,则执行S44:确认合并失败;并返回执行步骤SI。5.一种基于git源代码冲突的文件合并系统,其特征在于,包括: 修改模块,用于分别获取对第一文件的修改信息,以生成第二文件及第三文件; 合并模块,用于合并上述三份文件,生成冲突文件; 删除模块,用于参照第一文件,检测所述冲突文件中的新增行,并删除合并标记; 结果模块,用于对所述冲突文件进行编译检查,获得第四文件。6.根据权利要求5所述基于git源代码冲突的文件合并系统,其特征在于,所述合并模块包括: 比对单元,用于参照第一文件,分别逐行比较第二文件与第三文件,检测出新增行; 合并单元,用于通过合并工具将第二文件及第三文件中的新增行合并到第一文件的对应位置中,生成冲突文件。7.根据权利要求5所述基于git源代码冲突的文件合并系统,其特征在于,所述删除模块包括: 定位单元,用于参照第一文件,分别逐行检测冲突文件中的新增行,以定位合并标记; 删除单元,用于删除冲突文件的合并标记。8.根据权利要求5所述基于git源代码冲突的文件合并系统,其特征在于,所述结果模块包括: 调用单元,用于调用编译命令对所述冲突文件进行编译检查; 判断单元,用于判断编译检查是否通过。
【专利摘要】本发明公开了一种基于git源代码冲突的文件合并方法及系统,其中方法包括:S1:分别获取对第一文件的修改信息,以生成第二文件及第三文件;S2:合并上述三份文件,生成冲突文件;S3:参照第一文件,检测所述冲突文件中的新增行,并删除合并标记;S4:对所述冲突文件进行编译检查,获得第四文件。通过上述方式,本发明能够实现修改文件的自动合并,避免在源代码项目配置文件中由于新增文件导致的冲突,且可操作性强。
【IPC分类】G06F9/45, G06F17/30
【公开号】CN105183789
【申请号】CN201510516497
【发明人】陈丛亮, 刘德建, 毛新生
【申请人】福建天晴数码有限公司
【公开日】2015年12月23日
【申请日】2015年8月21日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1