在构建中使用 Mercurial 生成最新版本之间的更改日志
Use Mercurial in build to generate a change log between the last releases
目前我正在尝试弄清楚如何自动生成更新日志。计划是使用默认分支并将带有标签的提交标记为“已交付给客户”标签应该有版本号。
所以我添加了 3 个标签(Version0、Version1、Version2)来分支“默认”。现在我想为
生成一个 hg 日志
"Current Tag" of branch=default to "Current Tag -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.
谁能give/or 指出我正确的语法。我更喜欢不需要知道标签名称的解决方案。
类似于:记录 branch=default where from last to last -1 where Tag exists.
可选:我发现“标签部分”也没有 --rev 像“标签()::标签()”一样使用,但我无法弄清楚我必须查看 hg 文档(函数名称)的哪一部分...
我将在 hg-git 存储库的本地克隆上展示整个过程,其中包含许多标记作为版本号,但您必须阅读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
设置:bump 版本号
...
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 丹尼尔
设置:将版本升级到 0.10.0
好的,我知道了
- 范围内没有修订的所有(仅)标记修订
- 最新修订在底部
现在我会解决注意到的问题
hg log -r "limit(reverse(tag() & branch(default)),2)" --style compact
1814[0.10.0] d3af25aa2864 2021-01-11 15:58 +0100 丹尼尔
设置:将版本升级到 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
范围的 Revset,第一次迭代 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
测试:当 gitnode() 在模板
中时,演示非空 hg 传入的崩溃
...
1813 635107c4ad3a 2021-02-01 18:12 +0100 丹尼尔
设置:将主页调整为七爪怪
1814[0.10.0] d3af25aa2864 2021-01-11 15:58 +0100 丹尼尔
设置:将版本升级到 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
一些注意事项:
- 您可以|必须使用任何其他样式而不是用于测试
compact
- 您可以将完整的
hg log ...
命令转换为新的 hg-alias 并将其用作 (f.e) hg rcl
目前我正在尝试弄清楚如何自动生成更新日志。计划是使用默认分支并将带有标签的提交标记为“已交付给客户”标签应该有版本号。
所以我添加了 3 个标签(Version0、Version1、Version2)来分支“默认”。现在我想为
生成一个 hg 日志"Current Tag" of branch=default to "Current Tag -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.
谁能give/or 指出我正确的语法。我更喜欢不需要知道标签名称的解决方案。
类似于:记录 branch=default where from last to last -1 where Tag exists.
可选:我发现“标签部分”也没有 --rev 像“标签()::标签()”一样使用,但我无法弄清楚我必须查看 hg 文档(函数名称)的哪一部分...
我将在 hg-git 存储库的本地克隆上展示整个过程,其中包含许多标记作为版本号,但您必须阅读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 设置:bump 版本号
...
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 丹尼尔 设置:将版本升级到 0.10.0
好的,我知道了
- 范围内没有修订的所有(仅)标记修订
- 最新修订在底部
现在我会解决注意到的问题
hg log -r "limit(reverse(tag() & branch(default)),2)" --style compact
1814[0.10.0] d3af25aa2864 2021-01-11 15:58 +0100 丹尼尔 设置:将版本升级到 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
范围的 Revset,第一次迭代
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.01700 746310cba0a3 2020-08-06 17:10 +0200 乔治 为变更集 c17c6c915646
添加了签名1701 8b51b82cfb48 2020-08-06 14:53 +0200 测试:当 gitnode() 在模板
中时,演示非空 hg 传入的崩溃...
1813 635107c4ad3a 2021-02-01 18:12 +0100 丹尼尔 设置:将主页调整为七爪怪
1814[0.10.0] d3af25aa2864 2021-01-11 15:58 +0100 丹尼尔 设置:将版本升级到 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
一些注意事项:
- 您可以|必须使用任何其他样式而不是用于测试
compact
- 您可以将完整的
hg log ...
命令转换为新的 hg-alias 并将其用作 (f.e)hg rcl