Как я могу опубликовать хранилище Subversion в локальном IIS? - PullRequest
8 голосов
/ 23 сентября 2008

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

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

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

echo off
setlocal

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

endlocal
exit

Ответы [ 4 ]

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

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

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

6 голосов
/ 23 сентября 2008

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

Об этом есть SVN FAQ , и этот пост в блоге Vertigo Software blog также может быть полезен.

UPDATE: После вашего разъяснения я вижу, что вам нужен способ автоматического обновления кода на сервере после его регистрации. Изучите CruiseControl.NET , изучив учебное пособие по интеграции Subversion похоже, он должен делать то, что вы хотите.

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

2 голосов
/ 14 декабря 2009

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

Приветствие Paolo

1 голос
/ 23 сентября 2008

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

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

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

...