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}"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top