Mercurial:多个提交历史

时间:2013-02-11 18:53:27

标签: mercurial repository revision-history

我们与第三方(承包商)合作,在客户的项目中使用我们的“主”mercurial repo。看来我们得到了一个非常混乱的提交历史记录(包括跟踪和错误)。我们想从客户端隐藏这些细节(即不显示整个提交历史记录)。但是,与此同时,我们希望使用repo将结果传递给客户(以有序和更“精简”的形式)。 是否有适合此目的的推荐工作流程(和工具/ hg命令)?

2 个答案:

答案 0 :(得分:2)

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

  1. 在Mecurial Queues内部完成所有工作,然后仅在完成/完善时才完成更改集。让他们访问回购但不是mq回购(他们可以选择,单独版本化)

  2. 使用重写历史记录的内容,例如commit --ammendhistedit的{​​{1}}命令,以便在您喜欢之后更改回购(错误,团队中的每个人都必须删除重新克隆)

  3. 为他们创建一个完全独立的回购,当您准备好从回购邮件collapse给他们一个删除副本并提交

  4. 我认为任何这些都不值得隐藏正常的软件开发工作的麻烦,但你去了。

答案 1 :(得分:1)

使用MQ是一种好方法,使用MQ和TortoiseHG也是重写历史的简便方法。

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

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