2009-12-18 80 views
2

alt text http://img38.imageshack.us/img38/1863/screenshot20091218at112.png水银无操作合并到保存历史&靠近分支

修订107意外地合并了所有的变化从100-106

修订108被一个汞柱复归--all -r 106,接着hg commit,这可能是错误的做法,因为我没有合并分支进行所有更改,而是将所有更改包含在一个没有描述或历史的变更集中。

A)我应该如何去合并首先分支?

但更重要的是:

B)我如何去了解现在合并分支?

+0

你是什么意思“合并掉所有的变化”?你最初的目标是什么? – tonfa 2009-12-18 12:05:43

+0

我的意思是它更新了工作副本,以便更改不再存在! – James 2009-12-18 12:14:31

+0

所以你与错误的cset合并? – tonfa 2009-12-18 12:47:02

回答

2

如果你还没有推回购随时随地把你的盒子,你有一个简单的办法:

cd .. 
    hg clone -r 106 current newcurrent 
    cd newcurrent 
    hg pull -r 97 ../current 

现在newcurrent是一个回购,看起来就像你之前在107和108发生之前所做的一样。

要合并这两个,只是做:

hg update # which gets you to tip 
    hg merge # which merges in the other head and forces you to make choices 

目前还不清楚究竟哪里做错了创建107,所以我不知道如何建议改变做法,但它应该是一个简单的合并问题。无意中排除了一个分支中的所有更改应该是hard

+0

谢谢! 这样做的工作。 – James 2009-12-18 15:54:24

1

如果可能,备份存储库,以便您可以安全地进行试验。

这个命令将撤消最后一笔交易:

hg rollback -h 

此命令可以帮助你撤消合并和恢复:

hg backout -h 

这个命令会恢复你的工作目录到以前的状态不影响储存库:

hg revert -h 

-h选项在每种情况下都是gi为你的命令提供帮助。准备好应用该命令时,请除去-h选项。

我的第一个实验是:

hg rollback 
hg merge -r 106 

该计划是要回的修订107,这看起来像含有的变更95和96头的成功合并,然后在含有头合并变更97,100 - 106