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

时间:2014-11-03 15:38:08

标签: git mercurial

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

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

git还有其他替代方法吗?

1 个答案:

答案 0 :(得分:1)

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

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