Назад | Перейти на главную страницу

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

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

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

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

Я бы порекомендовал посмотреть 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 на срабатывание при совершении фиксации:

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

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

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

Если на вашем веб-сервере установлен 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. Надеюсь это поможет.