mercurial:分支与标记冲突

时间:2011-04-15 22:38:11

标签: mercurial tags branch

我创建了一个名称相同的分支和标记:0.2.0。我遇到了一些合并问题,但设法克服它们,使用-r并提供显式修订。所以这不是我的问题。相反,我想知道:当生成新版本时,是否建议为分支和标记使用不同的名称?这些标签和分支是否有任何标准名称?

2 个答案:

答案 0 :(得分:8)

我会像您一样使用版本号标记代码,例如1.02.0等等。对于维护分支,我会使用1.x2.x

1.1分支将在1.x分支上生成,1.0变更集是1.x分支的分叉点。它不在分支上,因为您只需在创建1.x错误修复版本时创建1.1分支。

最后,您可以使用revset language来区分标记和分支:

$ hg log -r 'branch(foo)'
$ hg log -r 'tag(foo)'

答案 1 :(得分:3)

除了default之外,Mercurial中的分支或标签没有标准名称。您的分支/标记命名方案将由您的开发过程决定。

我不认为对命名分支使用相同的名称,而标记是个好主意。通常,您可以执行hg update <name>,只要<name>与命名分支或标记匹配,Mercurial就会解析该名称并将其带到那里。但是,如果你同时拥有一个分支和一个同名的标签,它就无法区分两者,并且会带你到一个。当然,您可以明确指定修订版,但这种方法会破坏使用名称的便利性。