回答
一种可以替代的,我使用的广泛CMake的项目中子模块,是让所有的模块,独立的“库”,并通过find_package() CMake的命令使用它们(见例如https://cmake.org/Wiki/CMake:How_To_Find_Libraries或https://stackoverflow.com/a/20857070/1274747 )。每个依赖项都提供了自己的查找脚本,它与库一起安装,并且依赖项目可以使用它来本地化库。
项目的方式不直接依赖于特定的“依赖”提交(但仍可以依赖于特定的库版本,因为版本依赖项也可以通过查找脚本来处理,请参阅FindBoost.cmake,它们也是如果指定则处理所需的Boost库版本)。
如果你的项目
D
是促成回购A
和B
,则可以将其添加为子模块为您的项目D
。但是,签出项目
D
的某个版本时,无法同时将子模块签出到某个版本。解决方法是对A
和B
标签使用D
的相关版本,并执行脚本将结帐A
和B
转换为相关版本。如
v3.0
为D
是关系到A
和B
v2.0
v1.0
的版本,所以你可以在A
和v3.0.2.0
在B
与版本v3.0.1.0
添加标记。当您为D
结帐v3.0
时,您可以运行脚本来结帐A
和B
,版本以v3.0*
开头。如果你的项目
D
不利于回购A
和B
,你可以删除子模块的关联。A
和B
的代码就像您的项目D
的子文件夹和文件夹A
和文件夹B
的版本可以一直与您的项目D
的版本同步。
是的,我正在考虑为此创建一个自定义脚本。以正确的方式命名它,可以让你将它用作git扩展:) – Stefano
是否使用git扩展取决于你正在使用哪个工具git repo。如果您使用git命令行来操作git repo,则无法使用git扩展,您可以直接执行脚本来检出所有相关版本的子模块。 –
- 1. 用一个父存储库替换三个Git存储库
- 2. 使用Spring LDAP存储库的多个LDAP存储库
- 3. 多个源代码存储库
- 4. 在Maven中使用多个存储库
- 5. 使用docker-compose与多个存储库
- 6. Git:如何使用多个存储库?
- 7. 用一个标记替换存储库
- 8. 存储库模式的替代方法?
- 9. 使用ORM替换存储库模式?
- 10. 替代使用多个FloatingActionButtons?
- 11. 多态性替代MySQL存储过程
- 12. 使用Eclipse存储库的替代方案
- 13. 替代使用哈希存储密码在数据库中
- 14. 在Idea Intellij中使用Nexus存储库代替公共Maven
- 15. 使用localStorage存储多个存储
- 16. 多个用户的单个存储库
- 17. Apache2 svn多个存储库
- 18. Git和多个存储库
- 19. 多个存储库和Heroku
- 20. 多个Git存储库
- 21. 创建多个存储库
- 22. HDInsight - 使用多个存储?
- 23. Hg:将多个存储库合并为一个存储库
- 24. 将一个SVN存储库链接到多个Trac存储库
- 25. 多个SVN存储库或单个公司存储库
- 26. 将多个Git存储库推送到一个存储库
- 27. 替代存储过程
- 28. MongoDB替代存储过程
- 29. 使用PCL-CVS使用emacs处理多个CVS存储库?
- 30. 如何在另一个存储库中使用git存储库?
这实际上是语言无关的,不需要提及特定的编程语言。 –
嗨。是的,我知道,我只是为了以防万一:) 我知道有一些语言依赖工具,有时可能会有所帮助 – Stefano
'git checkout --recurse-submodules'有什么问题? – phd