Mercurial:如果标签具有相同的名称,如何切换到命名分支?

Dav*_*ton 6 version-control mercurial branch dvcs repository

我现在正在玩Mercurial,这可能永远不会成为一个问题,但我只是创建了一个存储库并添加了一些更改.我在一个点标记了它,然后在另一个点创建了一个命名分支.标签和分支都具有相同的名称.如果我这样做hg update name,切换到标记版本.除了在分支上使用修订号之外,有没有办法切换到分支?

我认为让我想到的是,如果我们要编写一些用于自动构建特定版本的脚本,我们只想指定要构建的标记或分支.如果有人碰巧在标签和分支中使用相同的名称,那么我们会遇到脚本获得正确修订的问题.是唯一的解决方案,以确保它们是唯一的,例如通过预先挂起的分支或标记名称?

Obe*_*nne 3

您可以通过解析 的输出来获取分支的最新版本hg branches

考虑这种情况(一个分支和一个标签,都名为popular):

$ hg tags
tip                            3:afb4026bfe32
popular                        1:cea974d8cfc4
$ hg branches
default                        3:afb4026bfe32
popular                        2:aa7ede2bb3f6
Run Code Online (Sandbox Code Playgroud)

在类似 bash 的 shell 中,您可以使用以下命令获得分支 popular的提示修订版:

$ hg branches | grep popular | awk -F ':' '{print $2}'
Run Code Online (Sandbox Code Playgroud)

获取标签修订版的工作方式类似,使用hg tags.

现在您的脚本可以更新到有问题的分支/标签。