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