我负责几个(相当小的)程序,它们通过不同的库共享大量代码。我想知道最好的存储库布局是开发不同的程序(和库),并使库在所有程序中保持同步。
为了争论,假设有两个程序有两个库:
- 程序1
- 图书馆1
- 图书馆2
- 程序2
- 图书馆1
- 图书馆2
自然地,库的错误修复和增强应该(最终)合并到所有程序中。由于在处理不同程序时正在处理这些库,因此使用外部定义似乎是不可能的。
所以我想把我的图书馆除了一个地方当作供应商分支,但我不确定最好的布局是什么。
我在想一些事情:
- 图书馆
- 图书馆1(祖先)
- 图书馆2(祖先)
- 程序1
- 程序1代码
- Library1(供应商分支)
- Library2(供应商分支)
- ...
然后说在开发 Program1 时对 Library2 进行了一些更改,我将它们合并回存储库的库部分,并在需要时将它们从那里合并到所有其他程序。
合并到其他程序并不总是立即发生,在 Program2 上工作的人可能会接近发布,而是先完成发布,创建一个标签,然后才更新所有库。
我有点担心这会在一段时间后导致许多合并和一些维护头痛,但我真的没有看到更好的解决方案。
再说一次,这对我来说似乎是一个相当常见的用例,所以我想我只是问问 stackoverflow 社区,实现这一目标的最佳存储库布局是什么?