在软件开发和模型设计过程中,版本管理一直至关重要。团队成员之间的协作、追踪、变更、迭代等操作都需要一个稳定且高效的版本管理系统,传统方法可能繁琐且容易出错。为此,我们在GCKontrol软件中开发了基于GitLab的模型版本管理功能,本文将深入探讨其技术细节和创新之处。
随着项目的不断演进,模型的结构、参数和功能都可能经历多次变更。模型版本管理旨在跟踪和记录这些变更,确保开发团队能够轻松地回溯历史状态、合并不同变更并管理模型的演进。模型版本管理可以在不影响当前进展的情况下回到模型过去的状态,寻找问题的根源,进行性能优化,或者在不同的分支上尝试新的功能。模型版本管理还有助于团队之间的协作,使团队成员能够共同努力,协同开发,却不会导致版本混乱或错误。总的来说,模型版本管理是保持项目整洁、稳定和高效的不可或缺的工具。
Git是一个开源的分布式版本管理系统,分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库,这样可以有效、高速地处理从很小到非常大的项目版本管理,
分布式架构: 每个开发者都可以在本地拥有完整的版本库,极大地降低了协作过程中的延迟,并使得断网或远程服务器故障时仍能进行工作。
分支管理: GitLab鼓励频繁创建分支,每个功能或修复都可以在独立的分支上进行开发,避免了主线代码的污染和冲突。
合并请求: 通过合并请求机制,团队成员可以对代码进行评论和讨论,确保代码的质量和逻辑正确性。
持续集成: GitLab集成了持续集成和持续交付(CI/CD)管道,自动执行测试和构建,确保代码变更不会引入新问题。
在GCKontrol中,我们的团队开发了基于GIT的模型版本管理功能。利用该功能,可以将模型相关文件或代码以模型或库为单位封装,基于GIT对工程或库进行版本管理,在软件内更有针对性地实现工程或库的多个版本管理维护,追踪每一次更新过程。
同时,为了更好地实现模型的比较和合并,我们的团队对GIT的模型管理功能进行了扩展,可以实现GCKontrol模型的差异分析、模型和库差异分析等,充分满足Model Based Design的应用场景。
(1)打开一个在git库中的工程:
如果打开的工程中包含库文件,软件界面中会显示打开的工程库状态,如下图所示:
(2)此时,点击工具栏中的版本管理按钮:
(3)打开如下窗口:
(4)在资源库分支与本地分支处可以切换分支。
创建分支:按钮可以创建新的分支。
拉取:按钮可以把资源库分支拉取到本地分支上。
提交:可以选择修改的一个或多文件点提交按钮,会弹出下图:
(5)填写提交信息后,提交按钮才可用,点击提交按钮后被选中的文件会被提交。
推送:按钮被点击后会弹出一个窗口选择目标分支与源分支后,确定后会推送提交到远端。
添加:同提交一样,对于新加入到目录下的文件,如果要用git管理起来,选择要添加的文件点添加按钮就会直接添加上。如下图所示:
恢复:对于修改过,新添加的文件但未提交的文件,可以选择文件后按恢复按钮来恢复修改。
日志:点击单个文件可以查看单个文件的日志,什么都不选择查看当前工程的日志。如下图:
差异对比:通过点击差异按钮可以显示差异对比界面,可以选中不同的历史版本进行版本间的对比。通过日志查看按钮打开日志界面,在里面选择历史某一次的提交。能过双击文件列表的文件可以显示文件在这二次版本间的变化。
对于工程和库子系统的文件比较,我们将文件封装成了工程树的形式展现,方便用户观察,如下图:
从这个树形结构可以看出:增加:模块底色为绿色并用“+”号表示;删除:模块底色为绿色并用“-”号表示;数据修改:模块底色为蓝色并用 表示;连线修改:模块底色为蓝色并用表示。
如下图所示,展示了子系统和模块被修改后的比较样式:
如下图所示,展示了子系统参数修改后的比较样式:
合并请求:允许开发者请求将他们在代码库的一个分支中所做的更改合并到另一个分支(通常是主分支或开发分支),这有助于保持代码质量和一致性,并促进团队协作。
在GCKontrol软件中,我们开发了基于GitLab的模型版本管理功能。在传统版本控制的基础上,该功能针对模型设计过程进行了优化,例如:
版本标签与注释: 每次模型版本的提交都可以附带详细的注释和标签,便于团队成员了解变更的目的和内容。
模型文件跟踪: 不仅代码,模型文件也可以在版本库中进行跟踪,确保每个版本的模型状态都能得到恢复和重现。
模型比较与合并: 我们的解决方案允许开发者比较和合并不同版本的模型,解决模型融合、冲突和进化问题。
通过GCKontrol的模型版本功能,进行实时协作、精确追踪、分支与合并,有利于团队实现高效的多人协作和变更追踪,更好地应对挑战、发现问题、提升性能,为模型设计和开发提供了独特的优势。
世冠科技成立于2003年,是一家专业从事工业软件系统仿真技术开发与应用的国家级高新技术企业,北京市企业科技研究开发机构、专精特新企业。为复杂装备研制单位和工业制造企业,提供可支撑产品设计研发及使用运维、覆盖产品全生命周期的完全自主研发的系统仿真工业软件和数字孪生解决方案,是国产系统仿真软件领域的领军者。