Как я могу опубликовать репозиторий subversion в локальном IIS?

StackOverflow https://stackoverflow.com/questions/118205

Вопрос

На работе у нас установлен Windows server 2003 с IIS и Subversion.Мы используем его для публикации и тестирования на местном уровне наших ASP.NET веб-сайтов.Каждый программист имеет Tortoise, установленный на его компьютере, и может обновлять / передавать содержимое на сервер.Хостинг репозиториев работает нормально.Но файлы, хранящиеся в этих репозиториях, затем необходимо скопировать в наш локальный IIS (виртуальные каталоги).

Каков простой способ опубликовать эти репозитории subversion в нашем локальном IIS?

Редактировать:
Благодаря пуецк Я добавил простой bat-файл, который выполняется каждый раз, когда происходит фиксация (проверьте документация по подрывной деятельности о крючках).Мой bat-файл содержит только:

echo off
setlocal

:: Localize the working copy where IIS points)
pushd E:\wwwroot\yourapp\trunk
:: Update your working copy
svn update

endlocal
exit
Это было полезно?

Решение

  1. Просто сохраните файловую область веб-сервера в качестве рабочей копии и запускайте в ней svn всякий раз, когда захотите "опубликовать".Настройте его так, чтобы скрывать содержимое папок .svn, если они кажутся вам неопрятными (я конкретно не знаю, как это сделать, но предполагаю, что это можно сделать).У них уже будет скрытый бит файловой системы, который может позаботиться об этом.

  2. Если вы хотите, чтобы это было действительно автоматически (обновления, как только кто-то совершает), используйте скрипт перехвата после фиксации на сервере SVN, чтобы запустить первый процесс.

Другие пользователи в комментариях предложили использовать export вместо checkout.Это тоже может сработать и позволяет избежать беспорядка .svn, но имеет два недостатка.Во-первых, он должен каждый раз повторно загружать все содержимое, а не только измененные файлы (поскольку он не сохранил каталог .svn, чтобы помнить, что у него есть).Если у вас много файлов, это будет намного медленнее.Во-вторых, update заменяет файл атомарно (записывает новую версию в .svn/tmp, затем перемещает ее на место).Export постепенно записывает файл в пункт назначения по мере его загрузки.Это означает, что export может доставить неполный файл тому, кто просмотрел его в неподходящее время.

Другие советы

SVN не поддерживает IIS;однако вы можете запустите автономный сервер svnserve server как службу Windows.

Там есть Запись часто задаваемых вопросов SVN об этом и этот пост в блоге на Блог Программного обеспечения Vertigo это тоже может быть полезно.

Обновить:После ваших разъяснений я вижу, что то, что вы ищете, - это способ автоматического обновления кода на сервере после его регистрации.Загляни в CruiseControl.NET, посмотрев на учебное пособие по интеграции subversion похоже, он должен делать то, что вы хотите.

ОБНОВЛЕНИЕ 2:В этом руководстве описывается интеграция Subversion, CruiseControl.ЧИСТЫЙ и Nant.

может быть, SVNIsapi сможет решить проблему (http://www.svnisapi.com).Потому что он использует только установку IIS, поэтому вам не нужен сервер APACHE или служба SVNSERVER.Во-вторых, должна быть возможность встроить плагин ASP.NET ISAPI в обработку SVNISAPI, чтобы страница ASP.NET (.aspx) интерпретировалась после чтения из репозитория.

Ваше здоровье Paolo

Использовать можно бесплатно Visual-SVN-сервер чтобы быстро установить Subversion с помощью интерфейса Apache.У него также есть хорошая оснастка MMC для управления сервером и репозиториями.

Затем вы сможете получить доступ к subversion с помощью HTTP или HTTPS, но номер порта должен отличаться от того, который использует ваш локальный IIS (порт по умолчанию для Visual-SVN server - 8080).

Если вам действительно нужно получить доступ к репозиториям, используя ваш локальный порт IIS 80, вы можете попробовать SVN-IIS который действует как мост между вашим IIS и Apache.Хотя сам я этого еще не пробовал.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top