(Mercurial)有没有办法回去标记分支的开头?

时间:2011-11-14 17:26:22

标签: mercurial branch

我愚蠢地没有在default行李箱上开始分支做一些实验工作,现在意识到我所做的并不是那么好。由于这个代码实际上被其他人使用(并且在野外),我想将修订版394(在本实验中未进行的最后一次更改)标记为正确的头部,并且基本上剥离了我所做的任何事情)。最好的方法是什么?

@ 397 my change, bad (tip)
|
|
o 396 my change, bad
|
|
o 395 my change, bad
|
|
o 394 good change
|
|
...

这应该成为

@ 394 good change (tip)
|
|
|- 397 bad change (closed)
||
||
|o 396 bad change
||
||
|o 395 bad change
|/
|
...

我是否需要根据394进行虚拟登记(这会自动创建一个新头)?这似乎是最简单的解决方案,但不是“最干净”。

1 个答案:

答案 0 :(得分:3)

您不需要虚拟登记入住,但确实需要确保您的下次办理登机手续是从转394开始的。

hg update -r 394
<do work>
hg commit

新头将是小费。


或者,如果您没有将回购推送到任何地方[1],并且您只想永久删除这些修订版,则可以使用mq扩展名,strip更改集或qimport他们到补丁队列和qdel补丁。

hg strip 395                   # Will strip rev 395 and it's descendants

这很危险,请确保你做对了。


[1]如果您已经将更改集发送到任何地方,为时已晚,那么猫就不需要了。你只需要分支转394。