Version control 如何在不完全合并分支的情况下合并另一分支的最新版本?

Version control 如何在不完全合并分支的情况下合并另一分支的最新版本?,version-control,merge,mercurial,branch,tortoisehg,Version Control,Merge,Mercurial,Branch,Tortoisehg,我用的是一只水银龟。我被要求从默认工作分支转到生产分支,编写一段代码,提交并推送到那里,然后更新回默认分支,并在那里继续我的下一个任务,因为我们将默认分支和生产分支分开。然而,也有人请求“将最新的更改也合并到默认分支” 如何将最新版本也合并为默认版本,而不将两个分支合并为一个,这当然不是我想要做的事情?您不能 合并时,始终将整个分支合并到该点,而不仅仅是单个变更集 你有两个选择 您可以将单个变更集从一个分支“移植”到另一个分支(取决于您使用的Mercurial版本)。这将有效地(尝试)将相同的更

我用的是一只水银龟。我被要求从默认工作分支转到生产分支,编写一段代码,提交并推送到那里,然后更新回默认分支,并在那里继续我的下一个任务,因为我们将默认分支和生产分支分开。然而,也有人请求“将最新的更改也合并到默认分支”

如何将最新版本也合并为默认版本,而不将两个分支合并为一个,这当然不是我想要做的事情?

您不能

合并时,始终将整个分支合并到该点,而不仅仅是单个变更集

你有两个选择

您可以将单个变更集从一个分支“移植”到另一个分支(取决于您使用的Mercurial版本)。这将有效地(尝试)将相同的更改应用于目标分支,并记录更改的来源。这不是合并

要使用这些函数,请首先更新到要将变更集“合并”到的分支尖端,然后使用“移植/移植”命令在其上应用其他变更集。如果您使用的是Ortoisehg,那么您可以右键单击要“合并”的变更集,那里应该有一个菜单项。如果没有,您可能需要启用扩展,甚至可能需要更新到Mercurial/TortoiseHg的更新版本

相反,您应该做的是更新回您首先从另一个分支创建其中一个分支的位置,在此基础上提交修复程序,然后将其合并到两个分支中。假设你真的想合并,那就是

换句话说,你会有这样的结果:

A---B---C---D---E---F    <-- branch 1
     \
      +-1---2---3---4    <-- branch 2

G
5
是这种情况下的两个合并。

回答得很好。我的主管后来澄清说,他无意中使用了“合并”这个词。这引起了混乱。
      +-C---D---E---F    <-- branch 1
     /
A---B---X                <-- fix changeset
     \
      +-1---2---3---4    <-- branch 2
      +-C---D---E---F---G
     /                 /
A---B---X-------------+
     \                 \
      +-1---2---3---4---5