hg tags
始终显示所有标记,那么我怎样才能获得指向特定修订及其所有祖先的标记?
真实世界的用例是,如果我使用本地标签来指定变更集上的功能(或错误修复),我需要找出累积功能/错误直到特定转速。
一种解决方案是添加一个包装命令,将“-r”添加到tags
。那么实现它的最佳方法是什么?使用revsets获取所有祖先转速并过滤标签?
答案 0 :(得分:5)
这应该可以解决问题(需要mercurial 1.7):
hg log -r "ancestors(<rev>) and tag()"
其中<rev>
是散列或本地修订号。但是,标记每个错误修正和功能似乎有点矫枉过正。
您可以按照约定,在提交消息中放置“bugfix:xyz”或“feature:abc”,而不是标记。然后,您可以提取所有错误修正和功能,如下所示:
hg log -r "ancestors(<rev>) and (keyword(bugfix) or keyword(feature))"
为重要里程碑或其他具有某些特殊意义的修订保留标记。
答案 1 :(得分:3)
如果我理解正确,你想:
如果您可以将自己限制为标记名称,则可以这样做:
hg log -r "ancestors(HASH)" --template "{tags}"