为外部承包商清理 Mercurial 存储库

2024-01-21

我有一个包含一些敏感文件和目录的活动项目。我想聘请外部承包商来做一些简单的 UI 工作。但是,我不希望承包商有权访问某些目录和文件。我的项目在 Bitbucket 上的 Mercurial 中。

清理项目并让他有权提交更改的最佳方法是什么?我考虑过分叉到一个新的存储库,但我担心删除我不希望他访问的目录。

如何删除它们以便它们不显示原始变更集?如何合并他的存储库而不删除我的主存储库中的那些目录?叉子是可行的方法吗?


当然,存储库需要访问其整个历史记录,以便自我检查其完整性。我不知道有选择地隐藏部分存储库的方法(有ACL扩展 http://mercurial.selenic.com/wiki/AclExtension,但它仅用于写访问)。

在你的情况下,我会

  1. 创建一个新的存储库,其中所有敏感信息已被剥离(使用转换扩展名 http://mercurial.selenic.com/wiki/ConvertExtension对于该任务)。
  2. 然后我会让外部人员使用该存储库。
  3. 一旦他的工作完成,将他的存储库拉入原始存储库的克隆中(使用-f强制拉取不相关的存储库),以及
  4. rebase http://mercurial.selenic.com/wiki/RebaseExtension将他的第一个变更集及其所有子变更集放到原始存储库的头部。
  5. 最后,将变基后的头推送到原始存储库。

对于步骤 3 到 5,您不必等到外部开发人员完成。对其存储库的中间状态进行变基也是可能的。

然而,这是一个理论想法......人们必须看看它在实践中的表现如何。

选择:如果您经常有外部承包商不应该看到您的代码的某些部分,我会支持@Anton 的评论以设置与多个存储库相关的权限。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为外部承包商清理 Mercurial 存储库 的相关文章

随机推荐