Mercurial删除变更集,包含合并的历史记录

时间:2010-09-07 18:58:03

标签: mercurial

我想remove a changeset from history,但hg export不适用于合并更改集(请参阅https://www.mercurial-scm.org/wiki/Export)。有没有办法使用hg pull进行一系列修订?例如,假设我想删除修订999,我希望能够说:

hg init NewRepo
hg pull ../OldRepo -r 0:1000
hg pull ../OldRepo -r 1000:tip

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Pull无法提取一系列修订版,因为存储库中存在的每个mercurial修订版都必须具有该修订版中的所有祖先更改集。所以如果你这样做:

hg pull ../oldRepo -r 1000

你也可以获得1000版的所有修订版。

一般来说,mercurial是关于构建一个不可变的历史记录 - 如果你后悔一个变更集你没有删除它,你创建一个新的,撤消你不再喜欢的变更集的工作。如果您无法在回购中拥有完整的历史记录,则需要使用stripconvert扩展名。两者都像宣传的那样工作,但提供了很多机会射击自己。如果您能够忍受它,只需撤消后续变更集中的繁重变更集并继续。