在Mercurial中,如何仅查看一组修订版而不是全部的标签?
-
12-10-2019 - |
题
hg tags
总是显示所有标签,那么我如何仅获得指向特定修订版及其所有祖先的标签?
现实世界中的用例是,如果我使用本地标签来指定更改集上的功能(或错误修复),并且我需要在特定的rev之前找出累积功能/错误。
一种解决方案是添加一个包装器命令,将“ -r”添加到 tags
. 。那么,实施它的最佳方法是什么?使用RevSet来获取所有祖先转速并过滤标签?
解决方案
这应该可以解决问题(需要Mercurial 1.7):
hg log -r "ancestors(<rev>) and tag()"
在哪里 <rev>
是哈希或本地修订号。但是,标记每个错误文件和功能似乎过于杀伤。
您只需遵循标记,而是可以遵循一个约定,其中您将“ BugFix:XYZ”或“功能:ABC”放在提交消息中。然后,您可以提取所有错误的文件和这样的功能:
hg log -r "ancestors(<rev>) and (keyword(bugfix) or keyword(feature))"
保留具有重要意义的重要里程碑或其他修订的标签。
其他提示
如果我正确理解您,您想:
- 指定修订
- 将日志过滤到只能更改 +所有祖先
- 提取这些更改中的所有标签
如果您可以将自己限制在标签名称:
hg log -r "ancestors(HASH)" --template "{tags}"
不隶属于 StackOverflow