alt text http://img38.imageshack.us/img38/1863/screenshot20091218at112.png
修订版107意外地将所有更改从100-106
合并修订版108是hg revert --all -r 106,然后是hg commit,这可能是错误的事情,因为我没有合并我做出所有更改的分支,而是包含了所有更改进入一个没有描述或历史的变革集。
A)我应该如何在第一时间合并分支?
但更重要的是:
B)我现在如何合并分支?
答案 0 :(得分: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。
答案 1 :(得分:1)
如果可能的话,备份存储库,以便您可以安全地进行实验。
此命令将撤消上一个事务:
hg rollback -h
此命令可帮助您撤消合并并恢复:
hg backout -h
此命令会将您的工作目录恢复到以前的状态,而不会影响存储库:
hg revert -h
每种情况下的-h选项都为您提供了该命令的帮助。准备好应用命令时删除-h选项。
我的第一个实验是:
hg rollback
hg merge -r 106
计划回到修订版107,看起来像包含变更集95和96的头部的成功合并,然后合并到包含变更集97,100-106的头部。