我们的TeamCity构建了一个完整的安装程序包,其中包括多个Web应用程序,控制台应用程序和win表单应用程序它构成了一个应用程序套件每个应用程序都有自己的Mercurial存储库。
我们希望能够自动为每个版本提供发行说明。当一个人悬停在构建的更改上时,TeamCity已经在Web界面中显示Mercurial提交消息。是否有可能以某种方式在构建期间捕获这些消息并将其提取到代理工作文件夹中的文本文件?
答案 0 :(得分:2)
我不知道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
输出,显示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
...
如果您想要对命令行或模板进行一些说明,请添加注释。