开发者

Mercurial remove changeset, history with merges

开发者 https://www.devze.com 2023-01-15 08:50 出处:网络
I want to remove a changeset from history but hg export does not work for merge changesets (see https://www.mercurial-scm.org/wiki/Export). Is there a way to u开发者_C百科se hg pull for a range of rev

I want to remove a changeset from history but hg export does not work for merge changesets (see https://www.mercurial-scm.org/wiki/Export). Is there a way to u开发者_C百科se hg pull for a range of revisions? For example, say I want to remove revision 999 I want to be able to say:

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

Any ideas?


Pull can't pull a range of revisions because every mercurial revision that exists in a repository must have all of its ancestor changesets in that revision too. So if you do:

hg pull ../oldRepo -r 1000

you get all of revision 1000's ancestor revisions too.

In general, mercurial is about building an immutable history -- if you regret a changeset you don't remove it you create a new one that undoes the work of the changeset you no longer like. If you can't abide having full history in your repo you need to use something like the strip or convert extension. Both work as advertised, but provide plenty of opportunities to shoot yourself in the foot. If you can stand it, just undo the onerous changeset in a subsequent changeset and move on.

0

精彩评论

暂无评论...
验证码 换一张
取 消