2011-11-14 46 views
0

我愚蠢地没有开始从default干线的分支做一些实验性的工作,现在认识到我所做的并不是那么棒。由于这段代码实际上被其他人使用(并且在外面),我想将修改394(这个实验中没有做出的最后更改)标记为正确的头部,并且基本上剥离了我所做的任何事情)。什么是最好的方式来做到这一点?(Mercurial)有没有什么办法可以返回并标记分支的开始?

@ 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(这将自动创建一个新的头)?这似乎是最简单的解决方案,但不是“最干净的”。

回答

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分。

+1

* hg up - hg branch dead-branch - hg co - hg rebase path *更适合创建修改过的DAG。删除历史记录也可以使用histedit扩展名 –

+0

是的,猫已经没有了。我想知道的是,如果有什么方法可以说“像目前的技巧一样对待394”。为了解决这个问题,我最终做出了一个新的推动,我以394为基础。然后关闭了另一个头。 – moswald

相关问题