如何使用可重用组件组织存储库

时间:2010-09-10 14:11:55

标签: git components code-reuse

我有以下git存储库:

  • ReusableA
  • ReusableB
  • ReusableC
  • 应用1

ReusableB和C都依赖于ReusableA。因此,两个存储库都包含ReusableA作为git子模块。 Application1依赖于ReusableB和ReusableC,因此它包含两个git子模块。但是,这应该导致Application1存储库包含两个(可能是不同版本的)ReusableA实例。所以我的问题基本上是,这是我应该避免的,或者我可以在Application1中创建一个简单地忽略其中一个ReusableA实例的构建脚本(最好我也不想初始化它)?

你能给我一些建议吗?如果这确实是一个需要避免的场景,我该怎么做呢?最佳做法?

1 个答案:

答案 0 :(得分:2)

在这种情况下,最好还包含ReusableA作为Application1的直接子模块。
Application1只会使用自己指定的ReleaseA版本进行构建,有效地“覆盖”ReusableBReusableC使用的版本。

  • 这在开发阶段很常见,您不能指望所有模块都遵循相同的依赖关系。
  • 但是,在集成或汇编阶段,您需要检测并报告这些情况(其中ReusableA与Application1ReusableBReusableC之间的不同版本一起使用)
  • 我们的目标是构建最终版本,该版本将仅使用ReusableA 的一个版本投入生产。