是否有 git等效于svn文件外部或以其他方式模仿git中的文件外部?
背景:我们有一个共同的项目,我们部分参考其他项目。
使用 git子模块 - 据我所知 - 只能引用存储库 - 而不是单个子文件夹或文件。
我们基本上需要一个支持svn等外部的分布式版本控制系统。
似乎git并没有提供我们需要的东西。我对吗?请证明我错了。
详细信息:
我们有一个非常大的svn存储库,其中包含多个项目。每个子项目都取决于基础项目。但是每个子项目只需要基础项目中的某些文件或文件夹 - 具体取决于子项目。因此,我们利用带有和不带修订号的文件和文件夹外部来解决这些依赖关系。
基础项目具有以下结构:
BASE
- libs
-- dll1.dll
- doc
-- howto.doc
- maps.csv
- cols.csv
- misc.ini
- fun.png
子项目使用类似的外部引用基础项目:
"Base/libs@27" inspect
"Base/doc" doc
"Base/calibration/map.csv@14" map/default.csv
"Base/calibration/cols.csv@56" cols/default.csv
答案 0 :(得分:0)
Git子模块的另一种选择是Git Subtrees,它看起来就像你要找的那样。
的更多信息答案 1 :(得分:0)
我没有为此找到一个干净的解决方案,但有许多解决方法。
最干净的似乎是将Base整体包含在辅助位置,使用子模块或子树合并,然后在各个文件上使用符号链接放在实际需要使用它们的位置。
这似乎不是很干净,特别是,包括不同版本的Base以满足你的“有和没有修订号”的要求可能会变得非常混乱,但我还没有看到一个干净的替代品。