我目前只是在玩 Mercurial,这可能永远不会成为问题,但我只是创建了一个存储库并添加了一些更改。我在某一点标记了它,然后在另一点创建了一个命名分支。标签和分支都具有相同的名称。如果我这样做 hg update name
它切换到标记版本。除了在分支上使用修订号之外,还有什么方法可以切换到分支?
我认为让我想到这一点的是,如果我们要编写一些脚本来自动构建特定修订版,我们只想指定要构建的标签或分支。如果有人碰巧在标签和分支中使用相同的名称,那么我们将遇到脚本获得正确修订的问题。是确保它们唯一的唯一解决方案,例如通过预先挂起分支或标记名称?
最佳答案
您可以通过解析 hg branches
的输出来获得分支的最新修订版本。 .
考虑这种情况(一个分支和一个标签,都命名为 popular
):
$ hg tags
tip 3:afb4026bfe32
popular 1:cea974d8cfc4
$ hg branches
default 3:afb4026bfe32
popular 2:aa7ede2bb3f6
在类似 bash 的 shell 中,您将获得分支
popular
的最新修订版。和:$ hg branches | grep popular | awk -F ':' '{print $2}'
使用
hg tags
获取标签修订的工作类似.现在您的脚本可以更新到有问题的分支/标签。
关于version-control - Mercurial:如果标签具有相同的名称,如何切换到命名分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748836/