不确定这是否应该在堆栈溢出上,但我目前在为我的 C# 项目创建架构时遇到问题。
主要结构
有三个存储库:
- 数据存储
- 解析(实质上是填充数据存储(
- 工作(使用数据存储(
<小时 />
working
存储库需要数据存储为项目(作为 git 子模块包含在内(。
parsing
存储库还需要数据存储为项目(作为 git 子模块包含在内(。
data storage
存储库独立于所有其他存储库。
目标
将创建使用parsing
存储库和working
存储库的第四个存储库。请注意,这两个存储库都依赖于data storage
存储库
渔获
如果parsing
存储库依赖于与working
存储库不同的data storage
存储库版本,该怎么办?我们不希望这种情况发生。
问题
如果子模块data storage
版本不同,如何防止任何用户在 Visual Studio Professional 或 Git 中包含这两个项目。您将如何构建存储库?您会将data storage
存储库作为子模块包含在两个存储库中,还是仅包含 .dll?
我们决定将它们全部合并到一个存储库中。
可能的选择是:
-
删除所有子模块并留下错误的引用 --> 用户必须自己设置交叉引用
- 这意味着,克隆一个存储库可能会导致项目不可构建,因为项目引用设置为不存在的项目
-
将所有内容合并到一个存储库中,解决版本问题和引用问题,并提供开箱即用的可构建存储库
- 但是失去了分离的 Git 历史以及分离的存储库和分支的优势