我注意到Mercurial没有报告完整标记的名称,它是作为update
命令的参数给出的,如果标记不存在且名称中包含破折号。这有什么合理的理由吗?
$ hg init test_repo && cd test_repo && hg up 'some-tag-with-dashes'
abort: unknown revision 'some'!
Mercurial版本2.9.2
提出了这个问题答案 0 :(得分:1)
这实际上有点古怪。发生了什么是第一个hg将您的字符串查找为标记,然后是分支名称,然后将其解析为revset。 revset解析得很好,但随后它会查找一个名为&#34的标签;有些"所以它可以对它进行设置算术,然后以这种方式失败。
我们应该可以做得更好,并且我会根据自己的想法更新提交给我的bug。
答案 1 :(得分:0)
我刚检查过,似乎只有在some-tag-with-dashes
不存在时才会出现错误。错误消息可以明显改进,但它按预期工作:
$ hg init
$ touch file; hg add file; hg commit -m "add file"
$ hg tag some-tag-with-dashes
$ hg up some-tag-with-dashes
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg up some-other-tag-with-dashes
abort: unknown revision 'some'!
执行hg tags
时是否会显示您的代码:
$ hg tags
tip 1:00acd65cf970
some-tag-with-dashes 0:8a895a220fa5