2017-08-10 35 views
0

怎样才能迅速地重新设置父级树在水银等,如果这是原来的结构:简单重造在mercurial?

A-B-C-D-E-F

我想将它更改为:

D-E-F(甚至A-D-E-F会做)

我试着在this answer的建议与splicemap,但它失败,错误splice map revision <hash> is not being converted, ignoring'

它也打印出来abort: no node!

任何帮助将appriciated。谢谢。

+0

我假设你想用hg-convert来代替“rebase”吗? – Tom

+0

'convert'也会重写历史记录,但不会消除更改;否则,将来的更改可能取决于已删除的更改。你想要实际移除更改吗? –

+0

我们无法理解您的问题,请更具体。 –

回答

1

我会做这个使用histedit扩展:

首先,让我们来创建你想要的结构的测试回购:

hg init 
echo "a" > file 
hg ci -m "a" 
echo "b" >> file 
hg ci -m "b" 
echo "c" >> file 
hg ci -m "c" 
echo "d" >> file 
hg ci -m "d" 
echo "e" >> file 
hg ci -m "e" 
echo "f" >> file 
hg ci -m "f" 

然后,做hg histedit,并输入以下选择您的编辑:

pick e4c09693d7a6 0 a 
r 380d6d1ef006 1 b 
r 33131e82bb1b 2 c 
r pick 9325fb48b48e 3 d 
pick 844ebb0b3844 4 e 
pick bc85bc9ade8f 5 f 

这只会在回购中留下三个提交。

请注意,对于此工作,phase您的回购中的提交必须是草稿。您还可能需要激活mercurial附带的histedit扩展。