Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial无操作合并以保存历史&;封闭分支_Mercurial_Merge - Fatal编程技术网

Mercurial无操作合并以保存历史&;封闭分支

Mercurial无操作合并以保存历史&;封闭分支,mercurial,merge,Mercurial,Merge,107版意外地合并了100-106版的所有更改 修订版108是一个hg还原--all-R106,然后是hg提交,这可能是错误的,因为我没有合并我进行所有更改的分支,而是将所有更改包含到一个变更集中,没有任何描述或历史记录 A) 首先,我应该如何着手合并分支机构 但更重要的是: B) 现在如何合并分支?如果可能,请备份存储库,以便您可以安全地进行实验 此命令将撤消上一个事务: hg rollback -h 此命令可能有助于撤消合并并还原: hg backout -h 此命令将使您的工作目录恢复

107版意外地合并了100-106版的所有更改

修订版108是一个hg还原--all-R106,然后是hg提交,这可能是错误的,因为我没有合并我进行所有更改的分支,而是将所有更改包含到一个变更集中,没有任何描述或历史记录

A) 首先,我应该如何着手合并分支机构

但更重要的是:


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合并了?这很模糊: