我正在使用Hudson从我的Mercurial存储库构建我的项目。有两个工作:一个构建提示,另一个应构建最新版本。当我标记版本然后在“分支”字段中使用该标记时,我收到此错误:
[workspace] $ hg update --clean --rev Release_1_2_beta1
abort: unknown revision 'Release_1_2_beta1'!
当我在本地副本中运行相同的命令时,它可以工作。当我克隆它可能是它在Hudson上打破的原因时它也有效吗?
答案 0 :(得分:3)
你所做的一切本身都是错误的,但我根据如何跟踪mercurial标签进行猜测。您是否有可能使用--rev
克隆到该工作区?
这种命令模式不起作用:
% hg init test
% echo this > test/file
% hg -R test commit --addremove --message 'a commit'
adding file
% hg -R test tag mytag
% hg clone --rev mytag test test-clone
% hg -R test-clone update --rev mytag
abort: unknown revision 'mytag'!
不起作用的原因是clone --rev
带来了所有变更集,包括标记mytag
指向的变更集,但它不会带来后续变更集实际上创建了一个名为mytag
的标签。
如果这是问题(并且只是一个猜测)那么您需要克隆所有内容或hg update
到tip
。
如果不是这种情况,请查看.hgtags
文件并验证其中是否存在标记。
答案 1 :(得分:1)
直到今天,Jenkins(Hudson)的Mercurial插件不支持tags。
一种适合我的方法是在作业中配置'default'分支,并将'windows命令'或'shell脚本'配置为执行的第一个构建步骤:
hg update -r TAGNAME