Мы переходим на 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?