分支代码合并方法、装置、设备及存储介质制造方法及图纸

技术编号:38465092 阅读:11 留言:0更新日期:2023-08-11 14:41
本公开提供一种分支代码合并方法、装置、设备及存储介质,涉及软件开发技术领域。该方法包括:通过响应于将第一分支合并到第二分支的请求,在第二分支上检出第一分支的依赖声明文件,然后将第二分支的依赖声明文件和包括不同于第一依赖声明信息第二分支的第二依赖声明信息的特定声明文件进行解析,获得第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,再基于序列化数据根据第二依赖声明信息获得更新的第二分支的依赖声明文件,以在第二分支提交更新的第二分支的依赖声明文件中更新的依赖声明信息,获得合并后的第二分支,从而可避免通过版本管理工具同步依赖声明文件而产生冲突。同步依赖声明文件而产生冲突。同步依赖声明文件而产生冲突。

【技术实现步骤摘要】
分支代码合并方法、装置、设备及存储介质


[0001]本公开涉及软件开发
,具体而言,涉及一种分支代码合并方法、装置、电子设备及可读存储介质。

技术介绍

[0002]软件开发中,项目中对于其所依赖的第三方程序往往会使用一个依赖声明文件描述,依赖管理工具基于此依赖声明文件安装对应的依赖,保证程序的正常运行,并产生一个依赖锁定文件。此依赖锁定文件描述依赖具体的安装版本,保证依赖的版本在之后每次安装中的一致性。
[0003]一个项目的下游项目通常需要添加其上游项目中没有的依赖。由于依赖管理工具的限制,一个项目只能存在一份规定格式的依赖声明文件。相关技术中采用直接在下游项目对应的依赖声明文件中添加额外的依赖声明的方式,但依赖声明文件在上游代码通过版本管理工具同步到下游时,会产生冲突,这种冲突通常需要开发者人工解决。
[0004]如上所述,如何避免通过版本管理工具同步依赖声明文件而产生冲突成为亟待解决的问题。
[0005]在所述
技术介绍
部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0006]本公开的目的在于提供一种分支代码合并方法、装置、电子设备及可读存储介质,可避免通过版本管理工具同步依赖声明文件而产生冲突。
[0007]本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0008]根据本公开的一方面,提供一种分支代码合并方法,包括:响应于分支合并请求,在第二分支上检出第一分支的依赖声明文件,以使第二分支的依赖声明文件与第一分支的依赖声明文件相同,均包括第一依赖声明信息,所述分支合并请求用于请求将所述第一分支合并到所述第二分支;将第二分支的依赖声明文件和第二分支的特定声明文件进行解析,获得第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,所述第二分支的特定声明文件包括第二依赖声明信息,所述第二依赖声明信息不同于所述第一依赖声明信息;基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,根据所述第二依赖声明信息获得更新的第二分支的依赖声明文件;在所述第二分支提交所述更新的第二分支的依赖声明文件中更新的依赖声明信息,获得合并后的第二分支。
[0009]根据本公开的一实施例,所述方法还包括:响应于所述分支合并请求,在所述第二分支上检出第一分支的依赖锁定文件,以使第二分支的依赖锁定文件与第一分支的依赖锁定文件相同,均包括第一依赖锁定信息;根据所述更新的第二分支的依赖声明文件获得更
新的第二分支的依赖锁定文件;在所述第二分支提交所述更新的第二分支的依赖声明文件中更新的依赖声明信息,获得合并后的第二分支,包括:在所述第二分支提交所述更新的第二分支的依赖声明文件中更新的依赖声明信息和所述更新的第二分支的依赖锁定文件中更新的依赖锁定信息,获得所述合并后的第二分支。
[0010]根据本公开的一实施例,所述第二依赖声明信息包括第二依赖声明的标识及其对应的第一版本,所述第一依赖声明信息不包括所述第二依赖声明的标识;所述方法还包括:判断所述第二依赖声明信息与所述第一依赖声明信息是否包括相同的依赖声明的标识;基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,根据所述第二依赖声明信息获得更新的第二分支的依赖声明文件,包括:响应于判定所述第二依赖声明信息与所述第一依赖声明信息不包括相同的依赖声明的标识,基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,将所述第二依赖声明信息添加到第二分支的依赖声明文件中,获得所述更新的第二分支的依赖声明文件。
[0011]根据本公开的一实施例,所述更新的第二分支的依赖锁定文件包括所述第一依赖锁定信息和第二依赖锁定信息,所述第二依赖锁定信息根据所述第二依赖声明信息获得,所述第二依赖锁定信息不同于所述第一依赖锁定信息。
[0012]根据本公开的一实施例,所述第二依赖声明信息包括第二依赖声明的标识及其对应的第一版本,所述第一依赖声明信息包括第二依赖声明的标识及其对应的第二版本,所述第一版本不同于所述第二版本;所述方法还包括:判断所述第二依赖声明信息与所述第一依赖声明信息是否包括相同的依赖声明的标识;基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,根据所述第二依赖声明信息获得更新的第二分支的依赖声明文件,包括:响应于判定所述第二依赖声明信息与所述第一依赖声明信息均包括第二依赖声明的标识,基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,获得所述更新的第二分支的依赖声明文件,所述更新的第二分支的依赖声明文件包括所述第一依赖声明信息。
[0013]根据本公开的一实施例,所述方法还包括:响应于所述分支合并请求,根据预设合并策略执行所述第一分支到所述第二分支的合并,所述预设合并策略包括进行合并时保持被合并分支的依赖声明文件和依赖锁定文件不变。
[0014]根据本公开的一实施例,所述序列化数据为JSON数据、YAML数据中的至少一种。
[0015]根据本公开的再一方面,提供一种分支代码合并装置,包括:检出模块,用于响应于分支合并请求,在第二分支上检出第一分支的依赖声明文件,以使第二分支的依赖声明文件与第一分支的依赖声明文件相同,均包括第一依赖声明信息,所述分支合并请求用于请求将所述第一分支合并到所述第二分支;解析模块,用于将第二分支的依赖声明文件和第二分支的特定声明文件进行解析,获得第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,所述第二分支的特定声明文件包括第二依赖声明信息,所述第二依赖声明信息不同于所述第一依赖声明信息;获得模块,用于基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,根据所述第二依赖声明信息获得更新的第二分支的依赖声明文件;提交模块,用于在所述第二分支提交所述更新的第二分支的依赖声明文件中更新的依赖声明信息,获得合并后的第二分支。
[0016]根据本公开的再一方面,提供一种电子设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任一种方法。
[0017]根据本公开的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任一种方法。
[0018]本公开的实施例提供的分支代码合并方法,通过响应于用于请求将第一分支合并到第二分支的分支合并请求,在第二分支上检出第一分支的依赖声明文件,以使第二分支的依赖声明文件与第一分支的依赖声明文件相同并均包括第一依赖声明信息,然后将第二分支的依赖声明文件和包括不同于第一依赖声明信息第二分支的第二依赖声明信息的特定声明文件进行解析,获得第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,再基于第二分支的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分支代码合并方法,其特征在于,包括:响应于分支合并请求,在第二分支上检出第一分支的依赖声明文件,以使第二分支的依赖声明文件与第一分支的依赖声明文件相同,均包括第一依赖声明信息,所述分支合并请求用于请求将所述第一分支合并到所述第二分支;将第二分支的依赖声明文件和第二分支的特定声明文件进行解析,获得第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,所述第二分支的特定声明文件包括第二依赖声明信息,所述第二依赖声明信息不同于所述第一依赖声明信息;基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,根据所述第二依赖声明信息获得更新的第二分支的依赖声明文件;在所述第二分支提交所述更新的第二分支的依赖声明文件中更新的依赖声明信息,获得合并后的第二分支。2.根据权利要求1所述的方法,其特征在于,还包括:响应于所述分支合并请求,在所述第二分支上检出第一分支的依赖锁定文件,以使第二分支的依赖锁定文件与第一分支的依赖锁定文件相同,均包括第一依赖锁定信息;根据所述更新的第二分支的依赖声明文件获得更新的第二分支的依赖锁定文件;在所述第二分支提交所述更新的第二分支的依赖声明文件中更新的依赖声明信息,获得合并后的第二分支,包括:在所述第二分支提交所述更新的第二分支的依赖声明文件中更新的依赖声明信息和所述更新的第二分支的依赖锁定文件中更新的依赖锁定信息,获得所述合并后的第二分支。3.根据权利要求2所述的方法,其特征在于,所述第二依赖声明信息包括第二依赖声明的标识及其对应的第一版本,所述第一依赖声明信息不包括所述第二依赖声明的标识;所述方法还包括:判断所述第二依赖声明信息与所述第一依赖声明信息是否包括相同的依赖声明的标识;基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,根据所述第二依赖声明信息获得更新的第二分支的依赖声明文件,包括:响应于判定所述第二依赖声明信息与所述第一依赖声明信息不包括相同的依赖声明的标识,基于所述第二分支的依赖声明文件的序列化数据和第二分支的特定声明文件的序列化数据,将所述第二依赖声明信息添加到第二分支的依赖声明文件中,获得所述更新的第二分支的依赖声明文件。4.根据权利要求3所述的方法,其特征在于,所述更新的第二分支的依赖锁定文件包括所述第一依赖锁定信息和第二依赖锁定信息,所述第二依赖锁定信息根据所述第二依赖声明信息获得,所述第二依赖锁定信息不同于所述第一依赖锁定信息。5.根据权利要求1所述的方法,其...

【专利技术属性】
技术研发人员:钱堃
申请(专利权)人:极狐信息技术湖北有限公司
类型:发明
国别省市:

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

1