【问题标题】:Mercurial: detect which change sets where on main branch at a particular revisionMercurial:检测特定版本的主分支上的哪些更改集
【发布时间】:2015-02-27 03:17:05
【问题描述】:

由于存储库等待签入,人们随机合并分支,以及一般的混乱,我需要弄清楚发布时主分支顶端的确切内容(哪些变更集)(标签/修订)。而且我必须追溯并自动执行此操作。 这似乎是一个基本的事情,应该能够通过 hg log 实现,但我不知道如何。请帮忙!

在@planetmaker 的建议下,我尝试了以下方法,似乎奏效了!

hg log -r "branch(default) and ::HashNumber"

【问题讨论】:

  • 您能否阐明您对“特定版本”的需求?你知道你构建的变更集,还是只知道构建它的时间?
  • 我知道默认分支的哈希值,从中发布。看来 hg log -r "branch(default) and ::" 可以解决问题!非常感谢@planetmaker

标签: mercurial


【解决方案1】:

您的问题的答案在于使用修订集。结帐hg help revset 以获取您可以使用它们做什么的完整列表。

如果您对某个时间之前 BRANCHNAME 中的最后一个变更集感兴趣:hg log -r"last(date(<2012-01-01)) and branch(BRANCHNAME)"(hg help dates 用于如何定义日期的选项,包括准确时间)。

现在,如果您想在脚本中使用此信息,您不需要完整的日志输出,而只需要修订或哈希本身。使用模板功能来格式化输出。因此适当地修改日志调用:

hg log -r"last(date(<2012-01-01)) and branch(BRANCHNAME)" --template="{node|short}\n"

为了只获取哈希。或者使用 {rev} 作为数字变更集版本(不过,它只在那个 repo 本地);请参阅 hg help templates 了解您可以输出的完整列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多