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

标签 version-control mercurial branch repository dvcs

我目前只是在玩 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/

相关文章:

version-control - TortoiseSVN 合并

git - 从远程服务器 pull 某个分支

merge Mercurial fork,更改分支

git - 如何对特定提交执行 rebase ?

version-control - 如何拒绝推送到尚未批准的主分支?

mercurial - 最好的和必备的 hg/mercurial 扩展是什么?

mercurial - 优化 Mercurial 存储库大小

git - 如何知道我在GIT的不同分支中拥有的文件?

version-control - 没有开放端口的计算机的源代码控制

version-control - 使用 Mercurial Hook 创建/加载数据库转储以进行版本控制