gpt4 book ai didi

mercurial - 如何让 CruiseControl.NET 与 Mercurial : "Source control failure (GetModifications)" 一起工作

转载 作者:行者123 更新时间:2023-12-04 12:43:29 25 4
gpt4 key购买 nike

我正在尝试为自动build设置 CruiseControl.NET 1.5.7256.1。我的项目存储在 Mercurial 中,我正在使用以下 ccnet.config :

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="Slider" webURL="http://localhost/ccnet">
<triggers>
<intervalTrigger seconds="3600" />
</triggers>
<sourcecontrol type="hg" autoGetSource="true">
<executable>C:\Python26\Scripts\hg.bat</executable>
<repo>c:\repos\slider</repo>
<workingDirectory>c:\ccnet\slider</workingDirectory>
</sourcecontrol>
<tasks>
<msbuild>
<executable>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe</executable>
<workingDirectory>c:\ccnet\slider</workingDirectory>
<projectFile>Slider.sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
<targets>Slider</targets>
<timeout>900</timeout>
<logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
</tasks>
</project>
</cruisecontrol>

但是当我强制构建时,我收到此错误:
[Slider:WARN] Source control failure (GetModifications): Source control operation failed: < was unexpected at this time.
. Process command: C:\Python26\Scripts\hg.bat log -r 0:123 --template <modification><node>{node|short}</node><author>{author|user}</author><date>{date|rfc822date}</date><desc>{desc|escape}</desc><rev>{rev}</rev><email>{author|email|obfuscate}</email><files>{files}</files></modification> --noninteractive
[Slider:INFO] Integration complete: Exception - 12/2/2010 1:19:08 PM

该错误可能是由 --template 中未加引号的尖括号引起的。参数,但如何让 CC.NET 在该参数周围加上引号?

================

这是 hg.bat:
@echo off
rem Windows Driver script for Mercurial

setlocal
set HG=%~f0

rem Use a full path to Python (relative to this script) as the standard Python
rem install does not put python.exe on the PATH...
rem %~dp0 is the directory of this script

%~dp0..\python "%~dp0hg" %*
endlocal

最佳答案

我成功地使用了 CruiseControl.NET 1.5.7256.1 和从这里安装的 Mercurial msi ,使用 hg.exe 的完整路径如 executable值(value)。

project\core\sourcecontrol\Mercurial\Mercurial.cs模板是这样使用的:

buffer.AddArgument("--template", HistoryTemplate)

并将被格式化为命令行,如下所示:
string.Format("{0}{1}{2}", arg, separator, StringUtil.AutoDoubleQuoteString(value))

其中分隔符是 " " , 和 AutoDoubleQuoteString将引用模板,所以这不会是错误的原因。

更新 1

其实, AutoDoubleQuoteString 应该引用模板,但在当前版本中不这样做。此外,即使在使用 hg.exe 时构建成功,在命令提示符下运行实际命令行会返回相同的错误。

更新 2

CruiseControl.NET 1.6.7981.1刚刚发布(参见 release notes ),并且由于模板现在作为文件传递,它工作得很好(至少在我的 PC 上)。

关于mercurial - 如何让 CruiseControl.NET 与 Mercurial : "Source control failure (GetModifications)" 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com