【问题标题】:Use Mercurial in build to generate a change log between the last releases在构建中使用 Mercurial 在最后一个版本之间生成更改日志
【发布时间】:2021-10-03 05:47:37
【问题描述】:

目前我正在尝试弄清楚如何自动生成变更日志。计划是使用默认分支并将带有标签的提交标记为“交付给客户”,标签应具有版本号。

所以我添加了 3 个标签(版本 0、版本 1、版本 2)到分支“默认”。现在我想为

生成一个hg日志

分支的“当前标签”=默认为“当前标签-1”

但是..我想不出正确的语法。

我尝试过类似的事情:

hg log --branch=default --rev="tag()" --template=Changelog => no Error but no result
hg log --branch=default --rev="tag(Version0):tag(Version1)" --template=Changelog => Errors Version0 does not exist.

谁能给/或指出我正确的语法。我更喜欢不需要知道标签名称的解决方案。

类似:Log for branch=default where from last to last -1 where Tag exists.

可选:我发现“标签部分”也没有使用--rev,如“tag()::tag()”,但我无法弄清楚我必须查看 hg 文档(函数名称)的哪一部分.. .

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    我将在本地克隆 hg-git repo 上展示整个过程,其中有很多标签作为版本号,但毕竟你必须仔细阅读hg help revisions

    • 起点(几乎与您的命令相同)hg log -r "tag() & branch(default)" --style compact(为了便于阅读,截断了输出)

      253[0.1.0] 505d7cdca198 2009-09-30 14:39 -0500 kbullock 用 distutils 打包

      269[0.2.0] 77d6c9eb02fb 2009-12-26 12:42 -0600 durin42 设置:达到 0.2.0

      278[0.2.1] 21ead8190d9c 2009-12-26 13:46 -0600 durin42 设置:升级到 0.2.1

      322[0.2.2] a222399a59d7 2010-05-22 22:12 -0500 durin42 凹凸版本 0.2.2

      348[0.2.3] 5d39b98e5083 2010-07-05 11:56 -0500 durin42 将版本提升至 0.2.3

      358[0.2.4] b53421918a89 2010-08-25 15:45 -0500 durin42 设置:凹凸版本号

      ...

      1698[0.9.0] c17c6c915646 2020-08-06 16:31 +0200 乔治 设置版本为 0.9.0

      1814[0.10.0] d3af25aa2864 2021-01-11 15:58 +0100 danchr 设置:将版本提升到 0.10.0

    好的,我知道了

    1. 所有(仅)标记的修订,范围内没有修订
    2. 最新版本位于底部

    我现在会解决注意到的问题

    • hg log -r "limit(reverse(tag() & branch(default)),2)" --style compact

      1814[0.10.0] d3af25aa2864 2021-01-11 15:58 +0100 danchr 设置:将版本提升到 0.10.0

      1698[0.9.0] c17c6c915646 2020-08-06 16:31 +0200 乔治 设置版本为 0.9.0

    还不错,但是

    • 现在我必须参考 hg log 中的第一个和第二个修订版以获取范围 SECOND::FIRST 并使用 limit() 谓词两次和一些魔法

    最新版本(列表中的第一个变更集)hg log -r "limit(reverse(tag() & branch(default)),1)" --style compact

    1814[0.10.0]   d3af25aa2864   2021-01-11 15:58 +0100   danchr
      setup: bump version to 0.10.0
    

    上一版本(列表中的第二个变更集 - 列表中偏移量为 1 的一个变更集)hg log -r "limit(reverse(tag() & branch(default)),1,1)" --style compact

    1698[0.9.0]   c17c6c915646   2020-08-06 16:31 +0200   georges
      Setting version for 0.9.0
    
    • 修改范围,第一次迭代hg log -r "limit(reverse(tag() & branch(default)),1,1)::limit(reverse(tag() & branch(default)),1)" --style compact

      1698[0.9.0] c17c6c915646 2020-08-06 16:31 +0200 乔治 设置版本为 0.9.0

      1699 940082ab0f8a 2020-08-06 17:08 +0200 乔治 为变更集 c17c6c915646 添加标签 0.9.0

      1700 746310cba0a3 2020-08-06 17:10 +0200 乔治 添加了变更集 c17c6c915646 的签名

      1701 8b51b82cfb48 2020-08-06 14:53 +0200 a 测试:当 gitnode() 在模板中时,演示非空 hg 传入的崩溃

      ...

      1813 635107c4ad3a 2021-02-01 18:12 +0100 danchr 设置:将主页调整为 heptapod

      1814[0.10.0] d3af25aa2864 2021-01-11 15:58 +0100 danchr 设置:将版本提升到 0.10.0

    • Revset 很好,但是字符串太长而且不适合打字,用revsetalias 打磨它,然后添加到.hgrc 以回购现有的或现在创建的[revsetalias] 部分类似

      rcl = limit(reverse(tag() & branch(default)),1,1)::limit(reverse(tag() & branch(default)),1)

    命令hg log -r "rcl" --style compact 将产生相同的结果 与以前的长版本,但它至少更紧凑和令人难忘

    HTH

    一些注意事项:

    1. 您可以|必须使用任何其他样式而不是用于测试compact
    2. 您可以将完整的 hg log ... 命令转换为新的 hg-alias 并将其用作 (f.e) hg rcl

    【讨论】:

    • 天哪,我永远不会理解范围 [SECOND :: FIRST]。你的解释让我明白了。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多