Веб-разработка с SVN
Я использую VisualSVN Server на моем сервере, и TortoiseSVN установлен на моем компьютере разработчика и на моем сервере.
Я хочу иметь возможность загружать обновления на сайт через SVN, не проверяя вручную последнюю версию на htdocs.
Как я могу иметь TortoiseSVN на моем сервере, чтобы автоматически проверять последнюю версию сайта, когда я фиксирую новую версию?
4 ответа
Я бы порекомендовал посмотреть на CruiseControl.net, а затем настроить его следующим образом:
- Создайте рабочую копию, которая не публикуется IIS (т.е. доступна только с сервера).
- Настройте CruiseControl.net для сборки проекта из этой рабочей копии.
- Установите событие Post-Build (при успешной сборке) в CruiseControl.net для экспорта в опубликованную папку.
Это имеет два важных эффекта:
- Не строительная svn-версия не может быть опубликована.
- Ваши.SVN или _SVN каталоги не будут опубликованы. Теоретически кто-то может прийти и посмотреть на ваш исходный код в /.svn/text-base/your-filename.ext.svn-base.
Информация о настройке CruiseControl.net и Subversion:
- Непрерывная интеграция + CruiseControl.Net + Subversion + MSBuild +.Net 2.0
- CruiseControl.NET: блок управления исходным кодом Subversion
Информация о настройке CruiseControl.net для публикации файлов:
Информация о настройке CruiseControl.net для запуска при совершении коммита:
Если на вашем веб-сервере установлен TortoiseSVN, сначала выполните ручную проверку по соответствующему пути, затем создайте пакетный файл (или просто запланируйте расширенную задачу, если в 2008 году), содержащий следующее (при необходимости измените пути):
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:"C:\Inetpub\wwwroot\mysite"
Затем установите нужный период (5 минут, 10 минут и т. Д.).
Вам , вероятно, придется сделать svn-экспорт, потому что скрытые каталоги.snv/_svn содержат копии файлов, и если сайт не будет предварительно скомпилирован, это действительно испортит aspnet_compiler. svn export не создает скрытых директорий. Если вы хотите написать скрипт, вы должны использовать что-то вроде SlikSvn, которое дает вам доступ из командной строки к вашему хранилищу Subversion. Надеюсь это поможет.