【问题标题】:How can I build a version tagged in Mercurial with Hudson?如何使用 Hudson 构建在 Mercurial 中标记的版本?
【发布时间】:2010-08-18 07:28:32
【问题描述】:

我正在使用 Hudson 从我的 Mercurial 存储库构建我的项目。有两个工作:一个构建提示,另一个应该构建最新版本。当我标记发布然后在“分支”字段中使用该标记时,我收到此错误:

[workspace] $ hg update --clean --rev Release_1_2_beta1
abort: unknown revision 'Release_1_2_beta1'!

当我在本地副本中运行相同的命令时,它可以工作。当我克隆它在 Hudson 上中断的原因是什么?

【问题讨论】:

  • 你最好在 Stack Overflow 上问这个问题。

标签: mercurial build tags hudson


【解决方案1】:

您所做的一切本质上都是错误的,但我根据跟踪 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 文件并验证其中是否存在标签。

【讨论】:

  • 我看不到hg clone。我在日志中看到的是hg incoming -r mytag。这会导致同样的效果吗?
【解决方案2】:

直到今天,Jenkins (Hudson) 的 Mercurial 插件还不支持tags

对我有用的一种方法是在作业中配置“默认”分支并配置“windows 命令”或“shell 脚本”作为执行的第一个构建步骤: hg update -r TAGNAME

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多