【问题标题】:Mercurial & Keyword ext.: updating keywords when tagging a revisionMercurial & Keyword ext.:标记修订时更新关键字
【发布时间】:2015-11-05 09:15:24
【问题描述】:

我正在使用带有关键字扩展的 Mercurial,对此我感到非常满意。期待一件事,扩展版本标签是:

Version = {latesttag|nonempty}

每次签入时,所有关键字都会按预期展开。但是当我标记修订时,此时什么都没有发生。我期望/想要扩展所有文件中的标签。现在版本标签在文件的下一次提交时得到更新/扩展。我想,我必须用钩子来做这个,但我坚持这个。 有什么建议么? 非常感谢

罗兰

【问题讨论】:

    标签: mercurial keyword mercurial-extension


    【解决方案1】:
    • 您的过滤器什么都不做,因为对于没有标签的存储库 `{latesttag} 返回“null”文本字符串
    • 文件中的关键字具有“此文件”范围,而不是全局范围,即仅反映文件的最后更改时的状态,并且对于标记(仅提交 .hgtags)不会改变$Version$ 是预期的

    每次签入时,所有关键字都会按预期展开

    仅针对此变更集中的文件,不涉及未包含的文件。查看 repo 中两个(最初相同)文件的最终内容

    文件的当前版本:$Version$ 和 $Revision$

    每个都分别提交了几次

    >hg log file.txt -l 1
    changeset:   5:3ceaea734895
    
    >hg log file2.txt -l 1
    changeset:   3:09939c9b8243
    

    文件.txt

    Current version of file: $Version: v 0.1 $ and $Revision: 3ceaea734895 $
    

    file2.txt

    Current version of file: $Version: v 0.1 $ and $Revision: 09939c9b8243 $
    

    如果您想为每次提交更改所有文件中的关键字,您可以|必须在每次提交的问题中包含文件(可以是别名,使用commit -I

    【讨论】:

    • THX,我会看看如何用 TortoiseHG 做到这一点
    • @RolandSchmitz - 无法在 GUI 中编写别名,您必须手动编辑 .hgrc
    • 对,我不想通过 GUI 编写它,我想通过 GUI 使用它 :-) 所以添加类似:[alias] add_all = commit -I **.* 但是我以后如何通过 TortoiseHG 使用它?跨度>
    • 我尝试关注别名tag = hg commit -I "*.pl" -I "*.pm" && hg tag --rev 0 "$@" 但如果我尝试标记某些内容,我会得到hg tag: option --rev not recognized alias 'tag' resolves to unknown command 'hg' [command returned code 255 Mon Nov 16 14:18:47 2015]
    • @RolandSchmitz: 1. tag -r 0??? -r . 肯定是(或者根本没有 -r 表示“当前变更集”) 2. 别名是 hg 命令 的别名,hg 假定但未使用(请参阅 selenic.com/mercurial/hgrc.5.html#alias 中的内部别名) 3 . && 不是 Mercurial 的内部功能,恐怕在修复第 1-2 页后,您必须将别名重写为 SHELL-alias 4。-m ... 需要在 hg commit 提交中用于非交互式提交
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多