Как-то искал подходящую систему контроля версий с возможностью установки на IIS7. Остановился на Mercurial. Ранее здесь уже рассказывалось как выполнить такую установку, но с выходом новой версии Mercurial все изменилось.



Итак, начнем установку. Предполагается, что у вас уже установлен IIS7.


Установка необходимых программ


  1. Установить Python 2.6.6 в папку c:\python26.
  2. Установить PyWin32 Build 214 (именно эту версию, так как она совместима с установленной версией Python)
  3. Установить ISAPI_WSGI
  4. Установить Mercurial. Фактически, установленный Mercurial мы будем использовать лишь для создания начального репозитория. Поэтому если есть готовый репозиторий, то можно не устанавливать Mercurial.


Компиляция Mercurial


  1. Добавляем строку c:\python26 в переменные среды (Мой компьютер -> Свойства -> Дополнительно -> Переменные среды). Это можно не делать, но так намного удобнее в дальнейшем будет компилировать Mercurial
    image
  2. Скачать исходный код Mercurial. Необходимо распаковать его в папку c:\hgsource
    image
  3. В командном окне переходим в папку c:\hgsource и компилируем Mercurial c помощью команд
    python setup.py --pure build_py -c -d . build_ext -i build_mo --force
    python setup.py --pure install --force



Настройка IIS7


  1. Создаем папку c:\inetpub\wwwroot\hg, в которой в дальнейшем будет храниться репозиторий, доступ к которому можно будет получить через сервер. В созданную папку копируем файл
    c:\hgsource\cMercurialontrib\win32\hgwebdir_wsgi.py. Открываем файл и меняем значение одного из параметров:
    hgweb_config = r'c:\inetpub\wwwroot\hg\hgweb.config'
  2. Также в этой папке создаем файл hgweb.config со следующим содержимым:
    [collections]
    C:\inetpub\wwwroot\hg = C:\inetpub\wwwroot\hg
  3. Чтобы получить файл _hgwebdir_wsgy.dll, в командном окне переходим в папку
    c:\inetpub\wwwroot\hg и выполняем команду
    python hgwebdir_wsgy.py
    Выполнение команды должно завершиться выводом надписи Installation complete
  4. Открываем диспетчер служб IIS7 и создаем новый пул приложений с именем Mercurial без управляемого кода (!)image
  5. В созданном пуле создаем новый сайт с именем hgimage
  6. Для созданного сайта выбираем «Сопоставления обработчиков»(Handler Mappings), далее «Добавить сопоставление модуля»
    image
  7. Затем для созданного сопоставления ISAPI-Mercurial выбираем в контекстном меню «Изменение разрешении функции...» и отмечаем все пункты.


Настройка доступа к репозиторию Mercurial


  1. В папке c:\inetpub\wwwroot\hg создаем (или копируем) репозиторий с именем myrepo. О том как создавать репозитории, можно почитать здесь. Необходимо убедиться что в файле
    c:\inetpub\wwwroot\hg\myrepo\.hg\hgrc прописана конфигурация и права доступа
    [ui]
    username = NieAR <mymail@example.com>
    [web]
    push_ssl=False
    allow_push=*

    Конечно же, если работать удаленно с репозиторием то username включать в файл не нужно.
  2. В адресной строке браузера переходим на localhost/hg/myrepo
    image

Материал подготовлен при помощи JeanLouis, личного опыта, а также с использованием этой, этой и этой ссылки. Про работу с Mercurial (в частности с репозиторием, находящимся на сервере) советую почитать здесь.