Mercurial无操作合并以保存历史&;封闭分支
107版意外地合并了100-106版的所有更改 修订版108是一个hg还原--all-R106,然后是hg提交,这可能是错误的,因为我没有合并我进行所有更改的分支,而是将所有更改包含到一个变更集中,没有任何描述或历史记录 A) 首先,我应该如何着手合并分支机构 但更重要的是:Mercurial无操作合并以保存历史&;封闭分支,mercurial,merge,Mercurial,Merge,107版意外地合并了100-106版的所有更改 修订版108是一个hg还原--all-R106,然后是hg提交,这可能是错误的,因为我没有合并我进行所有更改的分支,而是将所有更改包含到一个变更集中,没有任何描述或历史记录 A) 首先,我应该如何着手合并分支机构 但更重要的是: B) 现在如何合并分支?如果可能,请备份存储库,以便您可以安全地进行实验 此命令将撤消上一个事务: hg rollback -h 此命令可能有助于撤消合并并还原: hg backout -h 此命令将使您的工作目录恢复
B) 现在如何合并分支?如果可能,请备份存储库,以便您可以安全地进行实验 此命令将撤消上一个事务:
hg rollback -h
此命令可能有助于撤消合并并还原:
hg backout -h
此命令将使您的工作目录恢复到以前的状态,而不会影响存储库:
hg revert -h
在每种情况下,-h选项都为您提供该命令的帮助。准备好应用命令时,请删除-h选项
我的第一个实验是:
hg rollback
hg merge -r 106
计划是回到第107版,它看起来像是包含变更集95和96的头部的成功合并,然后合并到包含变更集97、100-106的头部。如果您还没有将回购协议从您的框中推到任何位置,那么您有一个简单的解决方案:
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时犯了什么错误,所以我不知道如何建议在实践中进行更改,但这应该是一个简单的合并问题。意外地删除了一个分支中的所有更改。您所说的“合并掉所有更改”是什么意思?你最初的目标是什么?我的意思是它更新了工作副本,使更改不再存在!那么你和错误的cset合并了?这很模糊: