Version control mercurial:混合命名分支和书签

Version control mercurial:混合命名分支和书签,version-control,mercurial,branch,Version Control,Mercurial,Branch,我一直使用mercurial的命名分支功能来处理分支,对此我非常满意。我读过mercurial的书签fature,虽然还没用过。我能看到使用书签的唯一原因是人们是否喜欢git风格的分支模型,而我不喜欢 那么,是否存在为同一存储库混合命名分支和书签的用例? 这有意义吗?混合使用的一种可能场景在 当我们看到书签的改进(远程回购上的推/拉书签和默认激活的跟踪当前行为)时,我们决定使用: 仅主要版本的命名分支(少于10个长期分支)和 为我们的每个功能一个分支的策略使用书签 然而,书签限制的一些限制使

我一直使用mercurial的命名分支功能来处理分支,对此我非常满意。我读过mercurial的书签fature,虽然还没用过。我能看到使用书签的唯一原因是人们是否喜欢git风格的分支模型,而我不喜欢

那么,是否存在为同一存储库混合命名分支和书签的用例?
这有意义吗?

混合使用的一种可能场景在

当我们看到书签的改进(远程回购上的推/拉书签和默认激活的跟踪当前行为)时,我们决定使用:

  • 仅主要版本的命名分支(少于10个长期分支)和
  • 为我们的每个功能一个分支的策略使用书签
然而,书签限制的一些限制使得同时使用书签变得笨拙/笨拙。
在最新的1.9+/2.x+Mercurial版本中,情况可能会更好,所以测试已经就绪。

修复了很多关于书签的错误/限制。

这确实有意义。仔细想想——命名分支本质上是在每个子提交中复制自己的标记。因此,您可以在同一命名分支下得到两个不同的头(提示):

@  changeset:   3:fe8f1a13eb95
|  branch:      b1
|  tag:         tip
|  parent:      1:33674427026e
|  user:        ...
|  date:        ...
|  summary:     Third commit on branch b1
|
| o  changeset:   2:0ad872ebd9b9
|/   branch:      b1
|    user:        ...
|    date:        ...
|    summary:     Second commit on branch b1
|
o  changeset:   1:33674427026e
|  branch:      b1
|  user:        ...
|  date:        ...
|  summary:     First commit on branch b1
|
o  changeset:   0:18c33e4b94ed
   user:        ...
   date:        ...
   summary:     First commit
这似乎有点违反直觉。另一方面,书签类似于从父提交到子提交的标记。它们保证只在一个头部。如果尝试使用名为b1的书签复制上述提交图,则变更集#3将不会获得书签名称——它将是匿名的:

@  changeset:   3:c4dd0b7f9844
|  tag:         tip
|  parent:      1:0c00681b3cfa
|  user:        ...
|  date:        ...
|  summary:     Third commit (on bookmark b1 or...?)
|
| o  changeset:   2:f4e700efd4a6
|/   bookmark:    b1
|    user:        ...
|    date:        ...
|    summary:     Second commit on bookmark b1
|
o  changeset:   1:0c00681b3cfa
|  user:        ...
|  date:        ...
|  summary:     First commit on bookmark b1
|
o  changeset:   0:f2cc94a68cf0
   user:        ...
   date:        ...
   summary:     First commit
在我看来,这与一个分支应该是什么相吻合——一条单一的发展路线

现在,回答您关于用例的问题:鉴于上述情况,您可能希望在回购中使用书签,其中您已经在使用命名分支,而。。。您在命名分支中有多个头,并希望命名这些头