我有几个库,libA、libB、libC。它们中的每一个都是具有以下结构的颠覆项目:
- 树干
- 分支机构
- 标签
libA 不依赖于任何人,libB 依赖于 libA,而 libC 依赖于 libB 和 libA。
我有一个依赖于 3 个库的项目 MyProject。当我在 MyProject 中制作标签时,我希望将来能够签出该标签并编译并使用它。问题是,如果 MyProject 的标签版本针对 3 个库的主干进行编译,它们可能会发生变化,并且当我签出标签时,它可能无法编译或工作不同。为了以与制作标签时相同的方式工作,我应该将库签出到正确的版本(我应该通过 repos 查找 repos 哪个版本)。
我目前的解决方案是,为每个库制作一个标签,然后根据标签编译 MyProject 的标签。在颠覆中,标签只是一个副本,所以每当我签出 MyProject 标签时,它都会指向已经存在的标签。问题是随着时间的推移,标签的数量会增加,尽管 repos 大小没有增加,但它会在磁盘中增加。
现在我想迁移到 git。Git标签不是副本,所以我有我原来的问题。如果我转到 MyProject 的标记版本,其他库可能已经更改,所以我应该更改其他库的版本。
我该如何解决这个问题?