我们正在迁移到Mercurial,当然,我们需要更新CruiseControl.Net构建过程以使用它而不是Visual SourceSafe。
我们使用以下块更新了CruiseControl配置文件:
<sourcecontrol type="hg" autoGetSource="true">
<executable>C:\Program Files\Mercurial\hg.exe</executable>
<repo>https://bitbucket.org/GTSDevs/galaxy</repo>
<workingDirectory>C:\Cruise Control\Releases\5.0.0\source</workingDirectory>
<branch>master</branch>
<multipleHeadsFail>false</multipleHeadsFail>
<tagOnSuccess>true</tagOnSuccess>
<timeout units="minutes">20</timeout>
</sourcecontrol>
这很有效,直到我们将一些代码推送到我们的存储库并在其中包含一个分支。现在我们的构建失败并出现以下错误:
ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: abort: crosses branches (merge branches or use --clean to discard changes)
. Process command: C:\Program Files\TortoiseHg\hg.exe update -r master --noninteractive
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial.GetSource(IIntegrationResult result)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Build(IIntegrationResult result)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)
我在错误中找到的所有信息似乎都与执行update
。
任何人都可以帮忙解决这个问题吗?
我们应该在ccnet.config文件中做些什么来支持Mercurial吗?
答案 0 :(得分:1)
一些想法:
--clean
命令行参数