Веб-разработка с SVN

Я использую VisualSVN Server на моем сервере, и TortoiseSVN установлен на моем компьютере разработчика и на моем сервере.

Я хочу иметь возможность загружать обновления на сайт через SVN, не проверяя вручную последнюю версию на htdocs.

Как я могу иметь TortoiseSVN на моем сервере, чтобы автоматически проверять последнюю версию сайта, когда я фиксирую новую версию?

4 ответа

Я бы порекомендовал посмотреть на CruiseControl.net, а затем настроить его следующим образом:

  1. Создайте рабочую копию, которая не публикуется IIS (т.е. доступна только с сервера).
  2. Настройте CruiseControl.net для сборки проекта из этой рабочей копии.
  3. Установите событие Post-Build (при успешной сборке) в CruiseControl.net для экспорта в опубликованную папку.

Это имеет два важных эффекта:

  1. Не строительная svn-версия не может быть опубликована.
  2. Ваши.SVN или _SVN каталоги не будут опубликованы. Теоретически кто-то может прийти и посмотреть на ваш исходный код в /.svn/text-base/your-filename.ext.svn-base.

Информация о настройке 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 минут и т. Д.).

Используйте скрипт пост-фиксации хука.

Например, этот post-commit.bat предполагает, что C:\Inetpub\Blah является рабочей копией, и обновляет ее каждый раз, когда происходит фиксация:

pushd C:\Inetpub\Blah
"C:\Program Files\VisualSVN\bin\svn.exe" update

Вам , вероятно, придется сделать svn-экспорт, потому что скрытые каталоги.snv/_svn содержат копии файлов, и если сайт не будет предварительно скомпилирован, это действительно испортит aspnet_compiler. svn export не создает скрытых директорий. Если вы хотите написать скрипт, вы должны использовать что-то вроде SlikSvn, которое дает вам доступ из командной строки к вашему хранилищу Subversion. Надеюсь это поможет.

Другие вопросы по тегам