Mercurial 如果存在';是散列冲突吗?

Mercurial 如果存在';是散列冲突吗?,mercurial,Mercurial,所以我的同事刚刚中奖了。我们为我们解决的每个票据创建一个功能分支,按照惯例b#####,其中##是发行号 问题是,当他试图通过hg-up-branch(b29477)更新到该分支(在该分支存在之前)时,他使用了default,而不是说该分支不存在 事实证明,branch(b29477)实际上返回了paren中事物的分支名称(而不是像我所想的那样强制Mercurial将paren中的事物作为分支名称进行评估!),因此碰巧有一个以b29477开头的变更集,默认情况下,因此,他没有说这个分支不存在,而

所以我的同事刚刚中奖了。我们为我们解决的每个票据创建一个功能分支,按照惯例
b#####
,其中
##
是发行号

问题是,当他试图通过
hg-up-branch(b29477)
更新到该分支(在该分支存在之前)时,他使用了
default
,而不是说该分支不存在

事实证明,
branch(b29477)
实际上返回了paren中事物的分支名称(而不是像我所想的那样强制Mercurial将paren中的事物作为分支名称进行评估!),因此碰巧有一个以
b29477
开头的变更集,默认情况下,因此,他没有说这个分支不存在,而是把它带到了违约的边缘

现在我们可以通过选择不同的分支名称来解决这个问题,但我想知道是否有任何方法可以
hg update


顺便说一句,
hglog
也取决于它的
——branch
参数的作用。它说:

-b --branch BRANCH [+]   show changesets within the given named branch
但事实并非如此。继续,用散列运行它。e、 g

hg log --branch eea844fb
这将带来结果。如果你翻阅文档,你会发现它实际上与:

hg log -r 'branch(eea844fb)'
试试这个:

hg update -r "branch('literal:b29477')"
从Mercurial帮助页面:

分支(字符串或集合)

属于给定分支或分支的所有变更集 给定变更集的分支

如果字符串以re:开头,则名称的其余部分将被视为 正则表达式。要匹配实际以re开头的分支:, 使用前缀文字:

这意味着,如果使用文字前缀,则指定的是字符串。而字符串不是

如本文所述,如果指定变更集,Mercurial将显示:

给定变更集的分支


我怀疑你会发现书签和标签的问题。使用类似这样的方法:
hg update-r“bookmark(mpenBkMrk)”
hg update-r“tag(mpenTag)”
就足够了。要清楚一点,答案是否定的。命令
hg update-r“branch()”
将不接受标记和书签,只接受分支和集合。