Обработка 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, и это из документации, а не из опыта.

Другие вопросы по тегам