在一个使用 TortoiseHG 和 Bitbucket 版本存储共享存储库的大项目中,出于代码 IPR 安全原因,我需要限制开发人员对特定子文件夹的读取和修改的访问权限。换句话说,我需要开发人员可以克隆、读取、修改他们正在处理的文件以及这些文件的所有依赖项,这些文件希望都位于同一个子文件夹中。当他们推送修改时,我希望在下一个拉取操作后将它们全部放在主存储库中。主存储库只能由项目所有者访问,而不能由开发人员访问。
子存储库的概念对于获得此要求有用吗?如果是这种情况,我怎么能通过TortoiseHG和Bitbucket来设置它?
是的,你可以用子存储库来做到这一点。若要设置它,必须在 Bitbucket 中创建主存储库和子存储库作为同级存储库:
https://bitbucket.org/{Username}/{SubRepo1}
https://bitbucket.org/{Username}/{SubRepo2}
https://bitbucket.org/{Username}/{MainRepo}
然后,MainRepo 中的 .hgsub 需要包含以下内容:
SubRepo1 = ../SubRepo1
SubRepo2 = ../SubRepo2
但请记住,项目所有者必须维护主存储库。它不会自动更新到子存储库的最新版本。
有关使用Mercurial/TortiouseHg进行设置,请参阅[官方文档]:https://www.mercurial-scm.org/wiki/Subrepository