假设Developer1在Module1上工作,Developer2在Module2上工作,而Module1取决于Module2。 Developer2今天完成了Module2的工作,但是如果将其更改提交给CI服务器,他的更改将中断Module1。但是,Developer1需要花几天的时间才能使Module1适应Module2中的更改。
就持续集成而言,Developer2应该做什么?
答案 0 :(得分:1)
这是许多开发抽象中的众所周知的问题。在微服务和库开发环境中,通常总是在某种程度上提供向后兼容性。它给其他依赖它的服务更新时间,直到删除旧功能为止。如果这不是一个选择,因为它有很多缺点,并且需要很多计划和文化才能使其正确,我建议您永远不要破坏大师。
所以我的回答是 3 -在这种情况下,功能分支是一个不错的选择,因为它适用于几乎所有工作流程,并且很容易与任何团队合作。
我选择的原因是:
我不确定它是否适用于您的情况,但是使用git submodules
也可以解决此问题,因为每个模块都有自己的存储库。每个依赖项都是指向固定在特定版本上的另一个模块的存储库的链接。这样可以避免因破坏依赖关系而导致的问题,而需要手动设置和更新版本。随着模块和依赖项数量的增加,这可能会非常费力。