Непрерывная интеграция с SVN с большим репозиторием - PullRequest
2 голосов
/ 06 января 2011

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

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

По сути, я хотел бы команду обновления SVN, что:

  1. Обновлен каталог до текущей версии.
  2. Удаляет все файлы, не находящиеся под контролем исходного кода.

Я просто что-то пропустил или для этого нет команды SVN?

Обновление: Я на машине Windows. Мне известно, что я мог бы сделать это с помощью cygwin или других методов, но мне любопытно, есть ли для этого функция SVN или CC.Net.

Ответы [ 2 ]

1 голос
/ 06 января 2011

Ознакомьтесь с этой записью в блоге (и веткой комментариев) о том, как Удалить файлы, не входящие в Subversion , несколькими способами.Если вам удобно использовать git, я думаю, что переключение на git-svn, так как ваш клиент может также позволить вам выполнить очистку.

0 голосов
/ 06 января 2011

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

svn status | grep '^\?' | cut -c8- | xargs rm
svn status | grep '^?' | awk '{print $2}' | xargs rm -rf

, любой из них будет работать.О, может быть, вы находитесь на коробке окна?Не могли бы вы уточнить?

...