0

我们使用我们的“主”mercurial repo 与第三方(承包商)合作,为客户开展项目。看起来我们得到了一个非常混乱的提交历史(包括跟踪和错误)。我们想对客户隐藏这些细节(即不透露整个提交历史)。但是,与此同时,我们希望使用 repo 将我们的结果交付给客户(以有序且更“浓缩”的形式)。是否有适合此目的的推荐工作流程(和工具/hg 命令)?

4

2 回答 2

2

没有好的/简单的方法可以做到这一点,但是有很多不好的/困难的方法可以做到这一点。这里有几个:

  1. 在内部在 Mecurial Queues 中完成所有工作,然后仅在完成/完美时才完成变更集。允许他们访问 repo,但不能访问 mq repo(它们是可选的,单独的版本)

  2. 在你喜欢它之后使用重写历史的东西commit --ammend或命令来改变它(缺点,你团队中的每个人都必须删除和重新克隆)histeditcollapse

  3. 为他们创建一个完全独立的 repo,当你准备好hg archive从你的 repo 中给他们一个 drop 副本并提交时

我认为这些都不值得隐藏正常的软件开发工作的麻烦,但是你去吧。

于 2013-02-11T20:14:00.320 回答
1

使用 MQ 是一个好方法,使用 TortoiseHG 的 MQ 也是重写历史的简单方法。

在您的情况下,您可以创建、拥有和维护两个相关的存储库:“Dirty”和“Clean”

  • Clean 可以创建为用于工作 Dirty 的克隆(并且在它之后不会克隆给开发人员)
  • 在 Clean 中,您将启用 MQ 扩展并在 Mercurial 的 CLI(或使用 TortoiseHG)中重写历史记录
于 2013-02-12T06:28:40.403 回答