【问题标题】:Mercurial: Multiple commit historiesMercurial:多个提交历史
【发布时间】:2013-01-26 22:52:27
【问题描述】:

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

【问题讨论】:

  • 承包商是否在默认分支上完成所有工作?

标签: mercurial repository revision-history


【解决方案1】:

使用 MQ 是个好方法,使用 MQ 和 TortoiseHG 也很容易改写历史。

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

  • Clean 可以创建为用于工作 Dirty 的克隆(并且在它之后不会克隆给开发人员)
  • 在 Clean 中,您将在 Mercurial 的 CLI(或 with TortoiseHG)中启用 MQ 扩展和 rewrite history

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      相关资源
      最近更新 更多