Вопрос

Мы используем стек CruiseControl.Net/NAnt/Subversion для CI.Выполнение новой проверки для каждой сборки отнимает слишком много времени, поэтому в настоящее время мы просто обновляем рабочую копию.Однако это оставляет вероятность того, что потерянные файлы могут остаться в рабочей копии после удаления в системе управления версиями.Мы пытались использовать задачу удаления NAnt просто для удаления всех исходных файлов кода перед обновлением, но это может повредить рабочую копию.Кто-нибудь знает быстрый способ запустить сборку на чистой и актуальной рабочей копии?Редактировать:Мы находимся на SVN 1.3.2

Это было полезно?

Решение

Если вы сделаете просто "обновить", SVN удалит все файлы, которые были удалены в системе управления версиями.Однако файлы, которые были созданы в процессе сборки, могут все еще находиться там и могут помешать новой сборке.Я не уверен, есть ли у SVN команда для их удаления, но я думаю, вы могли бы сделать это с помощью небольшого скрипта, SVN определенно мог бы сказать вам, какие файлы находятся под управлением версиями, а какие нет.

Другие советы

У нас была аналогичная проблема с нашей реализацией CC.

Наше решение...Мы уже создали сборку в 3:00 ночи, которая выполняла более длительные интеграционные тесты в дополнение к базовым модульным тестам.Мы просто решили сделать сборку в 3:00 утра полностью чистой на свежем дереве.Поскольку была середина ночи, это редко на кого влияло.Все остальные "обычные" проверки выполняли инкрементные сборки.

Если после обновления svn в вашей рабочей копии остались потерянные файлы, значит, в вашей версии Subversion обнаружена ошибка.

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

Единственный способ, который я могу придумать, - это иметь две копии на сервере сборки.Сначала вы обновляете информацию о первом местоположении.Вы удаляете второе местоположение.Скопируйте первое во второе, а затем создайте во втором местоположении.Таким образом, вы всегда начинаете с чистой сборки.

Возможно, вы захотите разобраться, почему оформление заказа занимает так много времени.Я использовал тот же стек buildserver, и у меня никогда не возникало проблем с этим.Subversion обычно занимала меньше времени, чем сама сборка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top