如何在TeamCity中有效地获取Mercurial更改日志?

时间:2014-03-28 20:42:10

标签: mercurial teamcity

我希望我的Noda Time持续构建 - 由我家中的私有TeamCity服务器托管 - 将Mercurial日志作为XML文件获取。源代码为hosted on Google Code。这样我就可以将它用于benchmark browsing on the public web site。这一切都在进行中,但它基本上已经开始融合在一起了。

我希望将日志作为TeamCity构建的一部分获取很简单。毕竟,它已经获取了源代码以执行构建。从普通的存储库目录,我可以运行:

hg log --style xml > hg-log.xml

不幸的是,据我所知,Team City中的“checkout”目录不是真正的Mercurial存储库 - 它只是适当提交时存储库内容的副本。这意味着我无法在该目录中运行hg log ...或者到目前为止我能够找到的任何其他目录。 predefined build parameters似乎都没有本地存储库路径,尽管我希望我错过了一个。

我目前的解决方法是再次获取源 作为构建的一部分(当然只是默认分支),然后使用它来获取日志。它有效,但感觉非常浪费。

我不清楚TeamCity实际执行源签出的方式或位置 - 我真的希望有一个本地存储某处可以用来获取日志。

3 个答案:

答案 0 :(得分:21)

您是否将代理商结帐设置设置为" 代理商"?

默认情况下,服务器执行checkout,然后将这些位发送到客户端。

您可以在此处找到设置:

image

答案 1 :(得分:8)

请尝试以“自动代理”方式结帐['这应该使结帐目录成为实际的回购。

答案 2 :(得分:7)

告诉TeamCity查看代理商。这样,您的构建代理将运行hg,代理上的结帐目录将是您可以运行hg log --style xml > hg-log.xml的仓库。