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



在从hg到git(业务需求)的转换过程中,我们遇到了一些工作流问题。在hg中,我们曾经通过创建具有特定权限设置的子网站来限制外包工作室对专有代码的访问。然后,我们的主hg-reos会有指向适当的Source或DLL子pos的分支,这样就可以很容易地在它们之间切换。

我们遇到的问题是,在git中模拟这种设置似乎是不可能的。将分支切换到不包含特定子模块的分支不会在本地删除该子模块的文件(预期的git行为)。这造成了一个乏味的手动删除步骤,如果我们将其推广给办公室中技术含量较低的人,可能会引发问题。我们需要一个系统,人们可以从历史上的任何其他提交中签出提示,并保证有一个工作项目,如果当前系统中没有删除子模块内容,这就不会发生。

除了我们要做的事情,git还有其他选择吗?

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

由于挂钩在远程和本地repo之间不同步,您可以按照此建议将挂钩连接到将克隆您的存储库的人。

最新更新