gpt4 book ai didi

c++ - 使用多个存储库的项目的 git 子模块的替代方案

转载 作者:行者123 更新时间:2023-11-30 03:29:58 27 4
gpt4 key购买 nike

我有三个存储库:ABC(c++代码)

AB 是独立的项目,都依赖于C。已与 git submodule

建立关联

我现在创建一个依赖于AB 的新项目D,所以现在C 被引用了两次

项目结构类似于以下内容:

D
|--A
| |
| C
|
|--B
|
C

由于D 的不同版本对应于AB 的不同版本,因此我希望有一种方法可以让它们同步在版本之间 checkout 。

我正在考虑删除子模块关联并切换到 repo对于所有 ABD。是否有意义?有没有更好的方法只使用 git 来做到这一点?

谢谢

最佳答案

我在 CMake 项目中广泛使用的子模块的一种替代方法是将所有模块作为独立的“库”并通过 find_package() 使用它们CMake 命令(参见例如 https://cmake.org/Wiki/CMake:How_To_Find_Librarieshttps://stackoverflow.com/a/20857070/1274747 )。每个依赖项都提供了自己的查找脚本,与库一起安装,依赖项目可以使用它来本地化库。

这样项目不直接依赖于特定的“依赖”提交(但仍然可以依赖于特定的库版本,因为版本依赖也可以通过查找脚本处理,参见例如 FindBoost.cmake ,它如果指定,还处理所需版本的 Boost 库。

关于c++ - 使用多个存储库的项目的 git 子模块的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45304056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com