【问题标题】:Mercurial: Multiple commit historiesMercurial:多个提交历史
【发布时间】:2013-01-26 22:52:27
【问题描述】:
我们使用我们的“主”mercurial 存储库与第三方(承包商)合作,为客户开展项目。看起来我们得到了一个非常混乱的提交历史(包括跟踪和错误)。我们想对客户隐藏这些细节(即不透露整个提交历史)。但是,与此同时,我们希望使用 repo 将我们的结果交付给客户(以有序且更“浓缩”的形式)。
是否有适合此目的的推荐工作流程(和工具/hg 命令)?
【问题讨论】:
标签:
mercurial
repository
revision-history
【解决方案1】:
使用 MQ 是个好方法,使用 MQ 和 TortoiseHG 也很容易改写历史。
在您的情况下,您可以创建、拥有和维护两个相关的存储库:“Dirty”和“Clean”
【解决方案2】:
没有好的/简单的方法可以做到这一点,但是有很多不好的/困难的方法可以做到这一点。以下是一些:
在内部完成您在 Mecurial 队列中的所有工作,然后仅在完成/完美时才完成变更集。允许他们访问 repo,但不能访问 mq repo(它们是可选的,单独的版本)
-
使用诸如commit --ammend 或histedit 的collapse 命令之类的重写历史的东西,在你喜欢它之后改变它(缺点,你团队中的每个人都必须删除和重新克隆)
为他们创建一个完全独立的 repo,当你准备好在你的 repo 中的 hg archive 中给他们一个 drop 副本并提交时
我认为这些都不值得隐藏正常的软件开发工作,但是你去吧。