Hg有一个新的Changeset Evolution功能和相关的Evolve扩展。
这是非常酷的,因为许多'重写'操作现在被移入DAG(如Git) - 不再需要MQ或需要搁置的补丁/线性化!它还避免了以前需要修改,rebase,histedit等的大型存储库单个条带的痛苦 - 慢速。
但是,经过一段时间和许多本地重写之后,可能会累积“大量”变更集,这些变更集会被过时隐藏/标记。
现在是时候了,而且有很多变化集会更长一些(根本):
Git中的'可比较'操作将是一个修剪孤儿提交的GC。
我不想重新克隆存储库。此外,隐藏的提交(幸运的是)没有被推送/发布。
答案 0 :(得分:3)
安全地摆脱过时变更集的一种简单方法(好像hg strip
一样安全)是使用extinct()
revset,即:
hg strip --hidden -r 'extinct()'
绝种变更集是过时的,也只有过时的后代(即没有依赖于它们的实时变更集)。
请注意,除非磁盘空间变得稀缺,否则不需要摆脱这些变更集。