Обработка svn блокировок / очистка при использовании CruiseControl .NET и Subversion
Я использую CruiseControl .NET с плагином контроля версий Subversion для автоматической сборки нашего проекта.
Некоторые из проектов автоматически проверяют наличие изменений, но иногда проверка завершается неудачно, и CruiseControl .NET помечает проект как "Исключение":
ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: Working copy 'xxFilename' locked svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
После этого я должен вручную войти на сервер и выполнить очистку svn для папки, прежде чем проект будет собран снова. Есть ли обходной путь для этого?
3 ответа
Новый сервер Cruise Control.Net 1.4.4 имеет два дополнительных свойства в блоке управления исходным кодом Subversion.
См. Документацию CCNET - Блок управления исходным кодом Subversion.
Свойства cleanUp и revert делают то, что вы хотите.
Вроде клудж, но не могли бы вы создать проект, который запускается по требованию и выполняет очистку SVN?
Я знаю, что вы можете в Java-версии CruiseControl, поэтому я предполагаю, что вы можете сделать то же самое с CC.NET.
Вы должны быть в состоянии использовать задачу издателя в конфигурации проекта.
Блок конфигурации проекта содержит задачу издателя, которая будет выполняться после каждой сборки.
Используя исполняемую задачу, вы можете передать текущее состояние интеграции в качестве переменной среды, и это позволит вам использовать простой сценарий или команду, чтобы решить, выполнять очистку SVN или нет.
Например, все, что вам нужно, будет:
if% CCNetIntegrationStatus% == Очистка svn "Исключение"
Отказ от ответственности: я только поиграл с CC, и это из документации, а не из опыта.