我们在其中一个项目中使用mercurial作为源控件。我们正尝试使用巡航控制.net。
为该项目设置持续集成在执行此操作时,我们将源控件设置为
<sourcecontrol type="hg">
<repo>path of repository</repo>
<workingDirectory>
working directory path
</workingDirectory>
</sourcecontrol>
但是当我尝试构建时,我得到了一个像这样的错误
Error Message: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: abort: http authorization required
. Process command: hg pull --noninteractive repository path
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)
我认为错误发生是因为我没有在源控制块中提供用户名和密码。但我不知道如何提供授权凭证,请任何人都可以帮助我。
答案 0 :(得分:1)
一个选项是将用户名和密码放在URL中 - 这不是Mercurial的事情,它通常是HTTP URL的一部分。这是一个例子:
http://username:password@hostname/path/to/repo
其他选项包括在巡航控制用户的[auth]
文件中使用~/.hgrc
部分,但将其放入网址可能最简单(尽管不是非常安全)。