我们的 TeamCity 构建了一个完整的安装程序包,其中包括多个 Web 应用程序、控制台应用程序和 win 表单应用程序。它构成了一个应用程序套件。这些应用程序中的每一个都有自己的 Mercurial 存储库。
我们希望能够自动为每个版本提供发行说明。当将鼠标悬停在构建更改上时,TeamCity 已经在 Web 界面中显示 Mercurial 提交消息。是否有可能在构建期间以某种方式捕获这些消息并将它们提取到代理工作文件夹中的文本文件中?
我们的 TeamCity 构建了一个完整的安装程序包,其中包括多个 Web 应用程序、控制台应用程序和 win 表单应用程序。它构成了一个应用程序套件。这些应用程序中的每一个都有自己的 Mercurial 存储库。
我们希望能够自动为每个版本提供发行说明。当将鼠标悬停在构建更改上时,TeamCity 已经在 Web 界面中显示 Mercurial 提交消息。是否有可能在构建期间以某种方式捕获这些消息并将它们提取到代理工作文件夹中的文本文件中?
我不知道 TeamCity,但我有一个简单的方法来获取一些软件的提交并将其格式化为一个整洁的历史日志,我想这就是你所追求的。也许您可以接受并修改它以满足您的需要 - 它仅使用 mercurial 命令,因此您可以将其添加为构建的依赖项(我的 VC++ 项目有一个构建后步骤,它运行命令并输出到文本文件)。
我有一个像这样的简单模板:
$ cat history.template
changeset = '{tags} {rev}\t{desc|fill68|strip|tabindent}\n'
start_tags = '\n'
tag = '{tag},'
last_tag = '{tag} : {node|short} @ {date|shortdate}\n'
当我使用以下hg
命令创建可用的历史日志时:
hg log --style history.template -r "reverse(::.) & !desc('Added tag')"
该命令获取工作目录所有祖先的提交注释,输出标签和变更集哈希,以及标签的创建日期,然后是所有相关的更改。hg log -G
这是一个测试 repo的示例输出,显示了default
和release
分支:
@ 21[tip]:18 c676cfe95284 2012-12-12 10:12 +0000 rob
| Added tag 0.0.5 for changeset d0869f1c84ba
|
| o 20 7618cafcfc5d 2012-11-26 17:23 +0000 rob
| | More changes indeed
| |
| o 19:17 ffc8bef85a2e 2012-11-26 17:22 +0000 rob
| | Some additional files were needed
| |
o | 18[0.0.5]:15,17 d0869f1c84ba 2012-11-22 17:25 +0000 rob
|\| Releasing
| |
| o 17 a41d817184ea 2012-11-22 17:25 +0000 rob
| | Made the last change
| |
| o 16:13 e790e9022e70 2012-11-22 17:24 +0000 rob
| | Made some changes using "record"
| |
o | 15 15f21a6f554a 2012-11-13 17:03 +0000 rob
| | Added tag 0.0.4 for changeset c316b232c95c
| |
o | 14[0.0.4]:10,13 c316b232c95c 2012-11-13 17:03 +0000 rob
|\| Merging, eh?
| |
| o 13 ba00c7045a23 2012-11-13 17:02 +0000 rob
| | Modified revset selection for logging
...
显示的模板和命令输出以下内容:
0.0.5 : d0869f1c84ba @ 2012-11-22
18 Releasing
17 Made the last change
16 Made some changes using "record"
0.0.4 : c316b232c95c @ 2012-11-13
14 Merging, eh?
13 Modified revset selection for logging
12 When logging history select only ancestors of the working directory
11 Added history logging
...
如果您想对命令行或模板进行一些解释,请添加注释。