在推送到主克隆之前从另一个克隆与我自己的克隆合并?

时间:2010-06-03 18:58:50

标签: mercurial

我正在开发一个由mercurial控制版本的项目。

我有一个克隆。我的朋友有一个克隆。

我的朋友对他的克隆进行了一些更改,然后将它们推送到主克隆。我已经对我的克隆做了一些更改,并准备推送到主克隆。但是,在推送到主克隆之前,我想将他的更改合并到我自己的克隆中(我认为这是正确的方法吗?)

我该怎么做?

谢谢

2 个答案:

答案 0 :(得分:7)

不要害怕合并。当我们必须合并分支时,我们中的许多人在cvs上削减了我的牙齿。 Mercurial的分支和合并是自然而简单的。

  1. 将所有更改提交到您当地的hg
  2. hg pull从主仓库中获取所有新节点,在您的情况下,这些将成为新的头部
  3. hg merge创建当前工作文件状态,作为两个父节点的合并
  4. 使用hg resolve -l列出任何冲突的文件,然后编辑它们,直到您满意为止
  5. 使用hg resolve -m将已修复的文件标记为已解决
  6. 使用hg commit实际提交两个父节点的合并
  7. 使用hg push让您的朋友获得他们的副本

记住变更集中的mercurial交易。变更集只是某个时刻项目快照状态的另一个名称。 通常,每个变更集都有一个父变更集,即状态所基于的先前已提交状态。合并操作是个例外,因为它有两个父变更集。

每个变更集都有零个或多个子变更集。 如果它没有子项,则变更集是“头”。 如果它有超过1个孩子,那么它代表了一个不同的发展分支。

答案 1 :(得分:0)

来自主要克隆的

hg pull -u。这将从主要克隆(包括您的朋友)获得所有新更改并更新您的工作副本。