创建新的 Mercurial 存储库克隆 SINCE 修订版

Create new mercurial repository cloning SINCE revision

我有一个巨大的 Mercurial 存储库。

克隆和一些操作开始变慢了。 我想摆脱旧的提交,但保留自特定日期以来的修订历史。

有没有什么方法可以将自某个特定提交以来的提交保留在单个分支上,并将所有较旧的父提交合并为一个?

R1 -> R2 ->R3 ->R4 ->R5 -> R6 -> R7 ->R8 ->Tip

[R1-5] ->R6 ->R7 ->R8 ->Tip

我尝试使用 GRAFT 来做这样的事情,但它没有用(也许我现在不知道如何正确地做)。

可选:Sourcetree上有这个选项吗?

您无法通过克隆来实现此目的。但是你基本上有两个选择:

  1. 使用 histedit 重写历史(这是默认扩展,但需要启用) 它为您提供了折叠提交的选项,即将多个提交合并为一个。

  2. convert(本质上也是历史改写) 这使您有机会创建一个仅包含选定提交和分支的新存储库。因此,您可以简单地省略前 4 次提交并从第 5 次开始。

还请查看 mercurial 附带的帮助(hg help histedithg help convert)。