如果我有两个分别名为2.0和2.1的标签,如何找到两者之间的变更集消息?我正在尝试找到一种使用HG make发布说明并列出与提交相关联的不同消息的方法。
变更集示例:
changeset: 263:5a4b3c2d1e
user: User Name <user.name@gmail.com>
date: Tue Nov 27 14:22:54 2018 -0500
summary: Added tag 2.0.1 for changeset 9876fghij
所需的输出:
Added tag 2.1 for changeset 67890pqrst
Change Info...
Added tag 2.0.1 for changeset 9876fghij
Change Info...
Added tag 2.0 for changeset klmno12345
答案 0 :(得分:3)
序言
“任何挑战都有一个简单易懂的错误决定”。鲍里斯(Boris)的答案是此规则的最好例证:“ ::”仅在纯单分支开发的情况下,topo-range才会仅产生好的结果(通常,想法(tm))
面部
好的解决方案必须正确处理复杂的DAG,并回答以下问题:“新包含的新变更集,旧不存在(无论发生的性质如何)”
对我来说,这是带有两个参数的revset中的“ only()”函数
“ only(set,[set])”
不是第一组祖先的变更集 回购中的任何其他头。如果指定了第二组,则 结果是第一组的祖先,而不是 第二组(即:: set1-:: set2)。
hg log -r "only(2.1,2.0)"
也许可以通过预定义样式“ changelog”获得更好的演示效果
hg log -r "only(2.1,2.0)" -s changelog
或自定义样式|模板
答案 1 :(得分:2)
您将要使用修订集来选择两个标签之间的所有变更集,例如:2.0::2.1
可能会成功。您可以通过运行hg log -G -r '2.0::2.1'
来验证所选变更集。 (有关修订的详细信息,请参见hg help revset
。
一旦您选择了正确的变更集,现在就可以应用模板来仅检索所需的信息。例如,如果只需要变更集描述的第一行,则可以对整个描述进行hg log -r '2.0::2.1' -T '{desc}\n'
或对每个变更集描述的第一行进行hg log -r '2.0::2.1' -T '{desc|firstline}\n'
。
如果您想添加更多信息,hg help template
是您的朋友。