我们认为这是当今典型的架构,包括iOS客户端,Android客户端和J2EE后端。它们在文件系统中看起来像这样:
当我自己编写并编写整个堆栈时,我在.git
下的文件夹<myProject>
中使用了同一个git仓库中的所有内容。这很棒,因为我可以跟踪整个堆栈中每个“功能”的更改。例如,修复bug可能需要对服务器+ iOS文件进行更改,因此必须同时跟踪这些更改。
然而,现在团队即将扩展,我需要将这些层的访问权限限制在相关团队中。例如,后端团队不应该能够访问iOS文件,反之亦然。理想情况下,我希望git(或git主机)在每个文件夹的基础上获得授权,这样可以很好地解决问题。但我在任何地方都没有看到这个功能。
如果我将代码拆分到不同的存储库中,我们将无法再跟踪同步更改。随着时间的推移,随着那些独立的回购以异步方式发展,回滚到以前的版本将变得非常混乱。
我读了git子模块,看起来用例不太合适。从人工工作量的角度来看,它们还有很多开销和错误空间。这似乎是一个典型的场景,我想听听其他人如何处理这个问题。
答案 0 :(得分:2)
这是一个常见的项目增长挑战。最常见的解决方案是具有共享或独立版本名称的多个存储库,它们将它们连接在一起;例如,查看Spring Framework项目与Spring Boot项目的关系。
注意:我的偏好是创建这些独立的存储库,但所有开发人员都可以访问 - 重点是尽可能快地完成整个开发周期。