Мы пытаемся автоматизировать процесс сборки для наших промежуточных серверов, но столкнулись с проблемой, хотя и незначительной. Мы используем функцию публикации, встроенную в VS2010, фиксируем в Subversion, а затем стороннее приложение (Beanstalk) автоматически извлекает обновленные файлы и передает их по FTP на промежуточный сервер.
Проблема, с которой мы столкнулись, заключается в том, что у нас есть только следующие варианты:
- (Меньшее из 2 зол) Если мы решим использовать «Заменить совпадающие файлы локальными копиями», это прекрасно работает, за одним исключением: эта опция не удаляет файлы, которые были удалены из проекта. Это приведет к появлению нежелательных и / или проблем с безопасностью для неопрятных файлов прежних времен.
- Если мы решим использовать «Удалить все существующие файлы перед публикацией», это удалит всю структуру папок, включая скрытые папки .SVN, которые Subversion использует для отслеживания обновлений и т. Д. Это кажется лучшим решением с точки зрения точности. , но это действительно разрушает локальную среду SVN, которая является посредником в этой автоматизации.
Мой вопрос: есть ли простой способ обойти это или совершенно другой вариант развертывания, который мы пропускаем (мы не хотим публиковать напрямую на сервер из VS, так как мы хотим отслеживать, кто / что / когда развертывание происходит)? Единственное, с чем я столкнулся, это вручную удалить содержимое файла перед публикацией, оставив структуру папки без изменений, а затем развернув ее с помощью команды «Заменить соответствующие файлы локальными копиями». К сожалению, это приводит к совершенно новому значению слова «автоматизация».
Есть идеи, как лучше всего это сделать?