Как мне заставить hgweb отображать нужный репозиторий? - PullRequest
2 голосов
/ 18 декабря 2010

У меня невероятный опыт работы с IIS7, Python 2.6, Mercurial 1.7.2 и hgweb.cgi.

После полудня, пытаясь заставить hgweb.cgi работать, я наконец заставил его рендерить в браузере, используя hgweb.cgi и IIS7. Теперь я вижу пустую визуализацию веб-сервера, то есть заголовок без перечисленных репозиториев.

Теперь, согласно многопользовательским сайтам, которые я прочитал после просмотра результатов Google, я знаю, что мне нужно обновить мой файл hgweb.config, чтобы он указывал на некоторые репозитории.

Однако, на всю жизнь, я не могу получить список своего хранилища, используя записи [paths] или [collection].

У меня следующая структура каталогов (упрощенная, но иллюстративная ...):

C: \ код C: \ код \ htmlwriter C: \ код \ CommandLineProjects \ Clean

В последних двух каталогах есть ртутные репозитории.

Я пытаюсь опубликовать репозиторий в c: \ code \ htmlwriter

Теперь, если я сделаю эту запись в hgweb.config

[paths]
htmlwriter = c:\code\htmlwriter

В моем выводе ничего не указано.

Если я поставлю

[paths]
htmlwriter = c:\code\*

Я получаю что-то, но не то, что я хочу, то есть это:

htmlwriter / CommandLineProjects / Clean

(Обратите внимание, что about сверлит на один уровень каталога дальше, чем я хочу).

Кажется, я не могу найти какую-либо комбинацию путей, звездочек или чего-либо еще, что послужит хранилищу в c: \ code \ htmlwriter. Кажется, он всегда хочет пойти на один уровень глубже, чем я хочу, или ничего не показать.

Я знаю, что мой файл hgweb.config читается, потому что я могу изменить тег стиля в нем, и он меняет то, что отображается.

Я несколько раз прочитал и перечитал несколько ресурсов в Интернете, но все они говорят, что то, что я пытаюсь, должно работать. Например, я следовал этой инструкции к письму без каких-либо хороших результатов:

http://www.jeremyskinner.co.uk/mercurial-on-iis7/

У кого-нибудь есть предложения?

Ответы [ 2 ]

1 голос
/ 11 января 2011

Я отвечу на свой вопрос:

Решение состоит в том, что путь, указанный в разделе [paths], равен относительно каталога, в котором находится файл hgweb.config.

Итак, если у вас есть хранилище в:

c:\code\myrepo

и ваш файл hgweb.config находится в:

C:\inetpub\hgcgi

тогда запись в вашем файле hgweb.config должна быть:

/myrepo = ../../code/myrepo

Это был трюк - указать правильный относительный путь.

Мне так и не удалось заставить hgweb.cgi работать с репо на другом диске.

1 голос
/ 21 декабря 2010

У меня была примерно такая же удача с hgweb.cgi, и в итоге я пошел по другому пути с wsgi и ртутной установкой "pure python". Я написал довольно полный ответ здесь.

...