如何为多层架构结构化Git仓库

4
我相信我们现在拥有的典型架构包括iOS客户端、Android客户端和J2EE后端。它们在文件系统中的结构如下:
myProject ├─ Code │ ├─ client_iOS │ ├─ client_android │ ├─ server_J2EE │ └─ db ├─ Creative └─ Other 在我独立开发并编写整个堆栈时,我把所有东西都放在同一个git仓库中,文件夹.git位于myProject下。这很好,因为我可以跟踪整个堆栈中每个“feature”的更改。例如,修复错误可能需要对服务器和iOS文件进行更改,因此必须同时跟踪这些更改。
然而,现在团队即将扩展,我需要限制对相关团队的层次结构的访问。例如,后端团队不应该能够访问iOS文件,反之亦然。理想情况下,我希望git(或git主机)可以基于每个文件夹进行授权,这将完美地解决问题。但是我没有在任何地方看到过这个功能。
如果我将代码分成单独的存储库,我们将无法再同步跟踪更改。随着这些独立的存储库随时间异步地演变,回滚到以前的版本将变得非常混乱。
我阅读了有关git子模块的资料,看起来它们并不适合这种用例。从人力工作量的角度来看,它们还存在很多开销和错误的空间。这似乎是一个典型的场景,我想听听其他人如何解决这个问题。
1个回答

2
这是一个常见的项目增长挑战。最常见的解决方案是使用多个仓库,这些仓库具有相同或独立的发布名称,将它们绑在一起;例如可以看看Spring Framework 项目与Spring Boot 项目之间的关系。 注意:我更喜欢使这些仓库独立,但对所有开发人员都可访问--并强调使整个开发周期尽可能快速。

我们在一些测试项目中尝试过这种方法,但随着时间的推移,我们遇到了我在原帖中描述的我们试图避免的问题。Git 的优点消失了,我们现在不得不处理手动同步事务的过程。感谢您的建议,但我们希望有更多“Git 风格”的解决方案。 - DTs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接