Mercurial ';hg拉力';在CruiseControl.NET生成中失败,因为未检测到任何更改

Mercurial ';hg拉力';在CruiseControl.NET生成中失败,因为未检测到任何更改,mercurial,cruisecontrol.net,Mercurial,Cruisecontrol.net,我已经使用Mercurial源代码控制块配置了CruiseControl.NET。当我第一次执行构建时,代码从我的窑库下载,构建顺利进行。但是,每个后续构建都会失败,我认为原因是hg.exe pull返回一个“错误”代码1,表示未检测到任何更改。我使用Process Explorer验证了返回代码。问题是,CruiseControl.NET显然将此视为失败条件,但我更希望它不将此尝试视为构建。根据我的经验,对于其他源代码控制系统,如果存储库中没有更改,CruiseControl.NET将什么也不

我已经使用Mercurial源代码控制块配置了CruiseControl.NET。当我第一次执行构建时,代码从我的窑库下载,构建顺利进行。但是,每个后续构建都会失败,我认为原因是hg.exe pull返回一个“错误”代码1,表示未检测到任何更改。我使用Process Explorer验证了返回代码。问题是,CruiseControl.NET显然将此视为失败条件,但我更希望它不将此尝试视为构建。根据我的经验,对于其他源代码控制系统,如果存储库中没有更改,CruiseControl.NET将什么也不做

[Project:DEBUG] Starting process [C:\Program Files\Mercurial\hg.exe] in working directory [D:\Working] with arguments [pull https://urlredacted]
[Project:DEBUG] Not setting PriorityClass on [C:\Program Files\Mercurial\hg.exe] to default Normal
[10:DEBUG] [Project C:\Program Files\Mercurial\hg.exe] standard-error stream closed -- null received in event
[9:DEBUG] [Project C:\Program Files\Mercurial\hg.exe] pulling from https://urlredacted
[6:DEBUG] [Project C:\Program Files\Mercurial\hg.exe] process exited event received
[9:DEBUG] [Project C:\Program Files\Mercurial\hg.exe] searching for changes
[9:DEBUG] [Project C:\Program Files\Mercurial\hg.exe] no changes found
[9:DEBUG] [Project C:\Program Files\Mercurial\hg.exe] standard-output stream closed -- null received in event
[Project:WARN] Source control failure (GetModifications): Source control operation failed: . Process command: C:\Program Files\Mercurial\hg.exe pull https://urlredacted
我的问题是,如果hg.exe拉取结果为1,我是否可以使用CruiseControl.NET配置使其忽略构建尝试,或者我是否必须修改CruiseControl.NET代码


我使用的是CruiseControl.NET 1.6和Mercurial 2.1。

问题是Mercurial 2.1在没有提取变更集的情况下更改了。这是一个向后不兼容的更改,现在必须更新脚本和工具才能考虑到这一点


我希望CruiseControl.NET的下一个版本会考虑到这一点。同时,可以使用一个小的批处理文件(正如您在评论中所建议的)。

好的,这里的问题是我在强制从CCTray生成。当强制构建时,CruiseControl.NET中的Mercurial代码显然不会忽略hg.exe拉取的结果。我的解决方案是编写一个批处理文件,作为hg.exe的传递,并在必要时重置errorlevel。然后,我更改了CruiseControl.NET脚本,直接指定批处理文件而不是hg.exe:@echo off“C:\Program Files\Mercurial\hg.exe”%*如果errorlevel 1设置errorlevel=0Nathan:如果您可以添加注释作为真正的答案,那就太好了-回答您自己的问题没问题!内森-这不是隐藏了真正的错误吗?ie-“或更新有未解析的文件。”(来自帮助)