0

让我们考虑以下两个 Mercurial 场景:

场景 A:我有从 rev 1 到 rev 5 的线性历史,我创建分支 foobar 并将修订版 5-11 提交给它。然后我切换到master并将rev 12提交给master。我有两个分支(master 和 foobar),每个分支一个头。好的。

场景 B:我有一个从版本 1 到版本 10 的线性历史(只有一个分支 - 主)。我想将修订版 6-10 放到一个新分支中,并从 5 开始继续我的 master,有效地将自己置于场景 A 中。我看到 mercurial 不支持分支的追溯命名,所以我无法过渡到场景A,但我正在考虑像这样的黑客攻击:

  1. 我创建了一个新分支(并将其命名为 foobar),并将 rev 11 提交给它
  2. 我切换到master并执行hg update -5,然后将rev 12提交给master

我现在有两个分支,每个分支都有一个头吗?如果我理解正确,场景 A 和场景 B 之间的唯一区别是,在场景 B 中,第 5-10 版没有标有“分支 foobar”,这在实践中并没有多大意义,以及场景 A 和场景的所有未来行为B 相等。我对吗?

4

1 回答 1

1

你是对的。当您执行 hg update 较早的修订时,您将看到当时的文件,并能够将差异与您想要在分支上的修订隔离开来。

于 2013-10-04T17:39:11.930 回答