流场模拟软件代码版本管理方法、装置和存储介质制造方法及图纸

技术编号:34246742 阅读:31 留言:0更新日期:2022-07-24 10:33
本申请涉及一种流场模拟软件代码版本管理方法,包括:获取对CFD软件中至少一个Git项目的代码更新操作;根据代码更新操作,将所修改Git项目确定为子节点,生成子节点的代码更新记录;代码更新记录包括开发者标识、更新时间、子节点的节点标识,以及子节点的父节点的节点标识;将代码更新记录同步至数据库,向服务端发起检测申请信号,使服务端周期性根据检测申请信号从数据库查询代码更新记录,确定在当前编号周期内进行代码更新的全部开发者的开发者标识,根据节点标识追溯每个开发者在当前编号周期内的代码更新轨迹,基于代码更新轨迹确定CFD版本编号。迹确定CFD版本编号。迹确定CFD版本编号。

Code version management method, device and storage medium of flow field simulation software

【技术实现步骤摘要】
流场模拟软件代码版本管理方法、装置和存储介质


[0001]本申请涉及流体力学计算
,特别是涉及一种流场模拟软件代码版本管理方法、装置和存储介质。

技术介绍

[0002]计算流体力学(Computational Fluid Dynamics,简称为CFD)软件是用于计算流体动力学的仿真软件,使工程师和分析师能够以智能方式预测液体和气体的表现。随着对仿真精度和效率的要求越来越高,CFD软件的功能以及代码量也越来越庞大,软件版本的迭代频率越来越高,这使得CFD软件的可扩展性与可维护性。为解决上述问题,通常会在大型CFD软件项目的开发过程中,集成具有代码版本管理、代码审核确认、算例并行测试等功能的自动化测试系统,以保证CFD软件的研发效率和灵活性。其中,软件版本控制功能可以记录、管理文件或文件集合的内容及其随着时间推移发生的变化,从而有效地解决版本的同步以及不同开发者之间的开发通信问题,提高多人协同开发的效率。
[0003]目前,CFD软件中常用的分布式代码版本控制系统为Git系统。Git系统在每一台本地计算机上保存包含整个版本控制库的所有数据内容,支持离线工作,在很多项目中得到广泛应用。然而, CFD软件基于Git进行开发是将每个功能模块分别作为一个Git项目来进行代码管理,而Git项目是以哈希值来作为CFD软件版本标识,由于哈希值本身是一串很长且无序的数字或字符,存在不易辨识和无法确定版本先后顺序的问题,不利于版本问题的测试和回溯查找。在由多个Git项目对CFD软件代码进行管理的情况下,这种问题更为突出。<br/>
技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种流场模拟软件代码版本管理方法、装置、计算机设备和存储介质。
[0005]一种流场模拟软件代码版本管理方法,包括:获取对CFD软件中至少一个Git项目的代码更新操作;根据所述代码更新操作,将所修改Git项目确定为子节点,生成所述子节点的代码更新记录;所述代码更新记录包括开发者标识、更新时间、子节点的节点标识,以及所述子节点的父节点的节点标识;将所述代码更新记录同步至数据库,向服务端发起检测申请信号,使服务端周期性根据所述检测申请信号从所述数据库查询代码更新记录,确定在当前编号周期内进行代码更新的全部开发者的开发者标识,根据所述节点标识追溯每个开发者在所述当前编号周期内的代码更新轨迹,将所述代码更新轨迹中的每条代码更新记录添加至待编号列表,根据所述更新时间及所述开发者标识对所述待编号列表中的Git项目进行组合,得到每种组合的CFD版本编号。
[0006]在其中一个实施例中,所述方法还包括:针对所述CFD软件中的每个功能模块建立Git项目; 建立每个所述Git项目的开发分支;所述开发分支包括一个主干分支以及负责开
发所述Git项目的每个开发者对应的个人分支;所述获取对CFD软件中至少一个Git项目的代码更新操作,包括:获取在当前个人分支对所述CFD软件中相应Git项目的代码更新操作。
[0007]在其中一个实施例中,所述根据所述代码更新操作,将所修改Git项目确定为子节点,生成所述子节点的代码更新记录,包括:当所述代码更新操作为代码提交操作时,将基于所述当前个人分支提交的最新代码确定为子节点,将上一次基于所述当前个人分支提交的代码确定为父节点;当所述代码更新操作为第一合并操作时,将基于所述当前个人分支中的最新代码确定为第一父节点,将所述当前个人分支对应的主干分支中的最新代码确定为第二父节点,将所述第二父节点合并至当前个人分支,在所述当前个人分支将所述第一父节点和第二父节点合并得到子节点;当所述代码更新操作为第二合并操作时,将所述当前个人分支中的最新代码确定为第一父节点,将所述第一父节点合并至所述当前个人分支对应的主干分支,并将所述当前个人分支对应的主干分支中的最新代码确定为第二父节点,在所述主干分支将所述第一父节点和第二父节点合并得到子节点。
[0008]在其中一个实施例中,所述方法还包括:当所述代码更新操作为第二合并操作时,检测所述第二合并操作所指向的当前个人分支上的第一父节点是否已完成第一合并操作;若否,提示执行所述第一合并操作;若是,检测执行所述第一合并操作得到的各Git项目之间是否存在冲突,当存在冲突时,提示在所述当前个人分支进行冲突解决,直至各Git项目无冲突时执行所述第二合并操作。
[0009]在其中一个实施例中,所述代码更新记录还包括更新日志;所述根据所述代码更新操作,将所修改Git项目确定为子节点,生成所述子节点的代码更新记录,还包括:当一次所述代码更新操作涉及多个Git项目时,基于相同的更新日志生成所涉及的每个Git项目分别对应的代码更新记录;所述根据所述更新时间及所述开发者标识对所述待编号列表中的Git项目进行组合,得到每种组合的CFD版本编号,包括:所述服务端检测所述待编号列表中是否存在所述开发者标识及所述更新日志均相同,且所述更新时间的差值在预设范围内的多条代码更新记录;若是,仅保留所述多条代码更新记录中更新时间最早的一条代码更新记录;根据更新时间对所述待编号列表中保留的全部Git项目进行排序;根据排序对所述待编号列表中每条代码更新记录涉及的Git项目与相应更新时间的其他Git项目组合,依次确定每种组合的CFD版本编号。
[0010]在其中一个实施例中,所述向服务端发起检测申请信号,包括:当开发者基于本轮修改的代码依次执行代码提交操作、所述第一合并操作及所述第二合并操作完毕时,向服务端发起检测申请信号。
[0011]在其中一个实施例中,所述根据所述节点标识追溯每个开发者在所述当前编号周期内的代码更新轨迹,包括:所述服务端在上一编号周期内生成的最后一个CFD版本编号中查询CFD软件所包含每个Git项目的节点标识,作为历史节点标识;自查询到的在所述当前编号周期内的第一条代码更新记录的子节点开始追溯父节点,将追溯到的父节点作为子节点,再次追溯父节点,直至追溯到的父节点的节点标识为所述历史节点标识,基于追溯到的多条代码更新记录生成相应开发者的代码更新轨迹。
[0012]一种流场模拟软件代码版本管理装置,所述装置包括:代码更新操作模块,用于获取对CFD软件中至少一个Git项目的代码更新操作;代码更新记录模块,用于根据所述代码更新操作,将所修改Git项目确定为子节
点,生成所述子节点的代码更新记录;所述代码更新记录包括开发者标识、更新时间、子节点的节点标识,以及所述子节点的父节点的节点标识;代码版本编号模块,用于将所述代码更新记录同步至数据库,向服务端发起检测申请信号,使服务端周期性根据所述检测申请信号从所述数据库查询代码更新记录,确定在当前编号周期内进行代码更新的全部开发者的开发者标识,根据所述节点标识追溯每个开发者在所述当前编号周期内的代码更新轨迹,将所述代码更新轨迹中的每条代码更新记录添加至待编号列表,根据所述更新时间及所述开发者标识对所述待编号列表中的Git项目进行组合,得到每种组合的CFD版本编号。
[0013]一种计算机设备,包括存储器和处理器,所述存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流场模拟软件代码版本管理方法,其特征在于,包括:获取对CFD软件中至少一个Git项目的代码更新操作;根据所述代码更新操作,将所修改Git项目确定为子节点,生成所述子节点的代码更新记录;所述代码更新记录包括开发者标识、更新时间、子节点的节点标识,以及所述子节点的父节点的节点标识;将所述代码更新记录同步至数据库,向服务端发起检测申请信号,使服务端周期性根据所述检测申请信号从所述数据库查询代码更新记录,确定在当前编号周期内进行代码更新的全部开发者的开发者标识,根据所述节点标识追溯每个开发者在所述当前编号周期内的代码更新轨迹,将所述代码更新轨迹中的每条代码更新记录添加至待编号列表,根据所述更新时间及所述开发者标识对所述待编号列表中的Git项目进行组合,得到每种组合的CFD版本编号。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:针对所述CFD软件中的每个功能模块建立Git项目;建立每个所述Git项目的开发分支;所述开发分支包括一个主干分支以及负责开发所述Git项目的每个开发者对应的个人分支;所述获取对CFD软件中至少一个Git项目的代码更新操作,包括:获取在当前个人分支对所述CFD软件中相应Git项目的代码更新操作。3.根据权利要求2所述的方法,其特征在于,所述根据所述代码更新操作,将所修改Git项目确定为子节点,生成所述子节点的代码更新记录,包括:当所述代码更新操作为代码提交操作时,将基于所述当前个人分支提交的最新代码确定为子节点,将上一次基于所述当前个人分支提交的代码确定为父节点;当所述代码更新操作为第一合并操作时,将基于所述当前个人分支中的最新代码确定为第一父节点,将所述当前个人分支对应的主干分支中的最新代码确定为第二父节点,将所述第二父节点合并至当前个人分支,在所述当前个人分支将所述第一父节点和第二父节点合并得到子节点;当所述代码更新操作为第二合并操作时,将所述当前个人分支中的最新代码确定为第一父节点,将所述第一父节点合并至所述当前个人分支对应的主干分支,并将所述当前个人分支对应的主干分支中的最新代码确定为第二父节点,在所述主干分支将所述第一父节点和第二父节点合并得到子节点。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述代码更新操作为第二合并操作时,检测所述第二合并操作所指向的当前个人分支上的第一父节点是否已完成第一合并操作;若否,提示执行所述第一合并操作;若是,检测执行所述第一合并操作得到的各Git项目之间是否存在冲突,当存在冲突时,提示在所述当前个人分支进行冲突解决,直至各Git项目无冲突时执行所述第二合并操作。5.根据权利要求3所述的方法,其特征在于,所述代码更新记录还包括更新日志;所述根据所述代码更新操作,将所修改Git项目确定为子节点,生成所述子节点的代码更新记录...

【专利技术属性】
技术研发人员:何磊赵钟赖相成何先耀万云博曾志春武文军
申请(专利权)人:中国空气动力研究与发展中心计算空气动力研究所
类型:发明
国别省市:

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

1