Обработка svn блокировок / очистка при использовании CruiseControl .NET и Subversion - PullRequest
3 голосов
/ 12 января 2009

Я использую 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 ]

6 голосов
/ 08 июня 2009

Новый сервер Cruise Control.Net 1.4.4 имеет два дополнительных свойства в блоке управления источником Subversion.

См. Документация CCNET - Блок управления источником Subversion

Свойства cleanUp и revert делают то, что вы хотите.

1 голос
/ 12 января 2009

Вроде клуджа, но не могли бы вы создать проект, который запускается по требованию и выполняет очистку SVN?

Я знаю, что вы можете в Java-версии CruiseControl, поэтому я предполагаю, что вы можете сделать то же самое с CC.NET.

0 голосов
/ 24 января 2009

Вы должны иметь возможность использовать задачу издателя в конфигурации проекта.

Блок конфигурации проекта имеет задачу издателя, которая будет выполняться после каждой сборки.

Используя исполняемое задание , вы можете передать текущее состояние интеграции в качестве переменной среды, что позволит вам использовать простой сценарий или команду, чтобы решить, выполнять очистку svn или нет.

Например, все, что вам нужно:
if% CCNetIntegrationStatus% == "Исключение" svn cleanup

Отказ от ответственности: я действительно только играл с CC, и это из документации, а не из опыта.

...