从Hg切换到Git的Subrepo工作流问题

Kon*_*tin 26 git mercurial

我们在从hg切换到git(业务需求)时遇到了一些工作流问题.在hg中,我们通过创建具有特定权限设置的子目录来限制外包工作室对专有代码的访问.然后,我们的主要hg repos将具有指向适当的Source或DLL子目录的分支,以便可以在它们之间轻松切换.

我们遇到的问题是在git中模仿这个设置似乎是不可能的.将分支切换到不包含特定子模块的分支不会在本地删除该子模块的文件(预期的git行为).这会产生一个繁琐的手动删除步骤,如果我们将其推广到办公室中技术水平较低的人员,可能会导致问题.我们需要一个系统,人们可以从历史记录中的任何其他提交中检出提示,并保证有一个工作项目,如果在当前系统中未删除子模块内容,则不会发生这种情况.

git还有其他替代方法吗?

hou*_*anb 1

您可以使用post-checkout客户端挂钩。基本上,当您将分支切换到使用另一个子模块的分支时,post-checkout挂钩将运行。在此挂钩中,您只需添加代码即可删除当前分支未使用的所有子模块。

由于挂钩在远程和本地存储库之间不同步,因此您可以按照建议将挂钩获取给将克隆您的存储库的人员。