当存在哈希冲突时,如何通过名称更新到分支?

时间:2017-01-26 01:03:03

标签: mercurial

所以我的同事刚刚赢得哈希乐透彩票。我们根据惯例b##########创建了一个功能分支,其中hg up branch(b29477)是问题编号。

麻烦的是,当他尝试通过default更新到该分支(在它存在之前)之前,他将branch(b29477)转而不是说该分支不存在。

事实证明b29477实际上返回了parens内部事物的分支名称(而不是像我想的那样强迫Mercurial将parens中的东西评估为分支名称!),并且发生了这样的事情是一个以默认的hg update <branch_name_and_dont_interpret_this_as_anything_else>开头的变更集,所以不是说分支不存在,而是将它带到了默认的提示!

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

BTW,--branch 谎言-b --branch BRANCH [+] show changesets within the given named branch 参数的作用。它说:

hg log --branch eea844fb

但这根本不是真的。继续用哈希运行它。如,

hg log -r 'branch(eea844fb)'

它会产生结果。如果你仔细阅读文档,你会发现它实际上与:

相同
foreach ($cts as $ct) {
        $array[$ct->id] = $ct->category->name;

    }

1 个答案:

答案 0 :(得分:1)

试试这个:

hg update -r "branch('literal:b29477')"

从Mercurial帮助页面:

  

分支(字符串或集合)

     

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

     

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

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

正如文中所说,如果您指定变更集,Mercurial将显示:

  

给定变更集的分支