折叠Mercurial变更集而不更改历史记录

时间:2013-01-12 13:32:27

标签: version-control mercurial tree rebase

有没有办法将一些连续的Mercurial变更集合并到具有单个描述的树视图中,同时保持完整的历史记录?有点像变基,但显示不会改变历史记录。

这些“固定”,“真正固定”和“真正固定”的变更集让我疯狂。

更新:我找到了Collapse ExtensionHistedit Extension,但都重写了rebase的历史记录。我希望有一种方法可以将“崩溃”信息与提交消息一起添加为纯视觉层,而不会丢弃任何变更集信息。

2 个答案:

答案 0 :(得分:1)

不,没有办法在mercurial中这样做。但是,拥有额外的变更集会让你烦恼吗?您过去的代码总是错误,缓慢和低功能:这就是您继续开发它的原因。让变更集不太合适没有坏处。

你无法控制你的回购的整个历史;你只能改变它的当前状态。如果它的当前状态有错误修复,那就没问题了。让过去成为。

答案 1 :(得分:0)

  

将几个连续的Mercurial变更集折叠为具有单个描述的树视图,同时保持完整的历史记录?

你怎么看?一个变化集有多于一个的历史?!

简短回答:不,你不能 - 或者你有一个折叠的变更集或者你有范围集

更长的答案:如果您的存储库尚未发布(因为您无法编辑已推送的存储库的历史记录),则不能在单个位置,但至少可以在两个位置进行操作存储库不受您的独家控制。)

如果有问题范围的存储库符合上述要求,您可以尝试

  • 有一个未经修改的开发历史回购(以下简称DEV)
  • 将一个折叠历史的回购(DEV的克隆)与公众共享(以下简称PUBLIC)

建议的工作流程:

  • 克隆DEV(现已存在)至PUBLIC
  • 以任何首选方式在PUBLIC中折叠范围集(因此 - 重写它的历史记录)
  • 发布PUBLIC
  • 继续您的DEV工作
  • 如果需要,将更改传输到PUBLIC(您将获得具有历史记录的匿名分支,在折叠范围集处分歧)
  • 使用rebase
  • 在PUBLIC上线性化历史记录
  • 发布PUBLIC

在开发过程中重复循环中的4个最新点