我在rev 2048有一个中央仓库的克隆。我想删除我当地仓库中的最后10个变更集,好像我两周前回来了。我想我可以删除我的本地仓库并执行"hg clone -rev 2038"
,但这会很长(克隆回购需要几分钟)。有没有办法只是“取消”某些变更集?
注意:
答案 0 :(得分:82)
使用strip命令:
hg strip -r 2039
此命令由StripExtension提供。它作为Mercurial 2.8及更高版本的一部分发布,但您需要首先通过将以下行添加到.hgrc或Mercurial.ini来启用它:
[extensions]
strip =
在Mercurial 2.8之前,它是MqExtension的一部分。
为防止您意外销毁历史记录,该命令会在.hg/strip-backup/
生成一个备用捆绑包,如果需要,您可以再次hg unbundle
。
答案 1 :(得分:19)
克隆本地仓库应该很快。我假设“几分钟”是指远程回购?
您可以使用hg clone <local repo> <new repo> -r <revision>
仅克隆某个版本。
答案 2 :(得分:12)
要删除已提交并推送的变更集,请使用:
hg backout -r (changeset number)
要删除已提交但未推送的变更集,请使用:
hg strip -r (changeset number)
答案 3 :(得分:7)