Hg служит в качестве службы Windows

Я хочу использовать mercurial на сервере Windows. Поскольку я хочу тянуть и проталкиваться через http, hg serve кажется самым простым решением. Он отлично работает, но я перезагружаю его после каждой перезагрузки, поэтому мне это нужно как служба Windows. Установка вручную с помощью sc create ... не помогла, она создала службу, которая вызывает ошибку при попытке ее запуска. Я нашел некоторые ссылки на эту проблему.

но они плохо документированы, если вообще. (Конечно, я могу установить веб-сервер и использовать hgweb, но это кажется еще более сложным.) Есть ли у вас какой-либо опыт легко настроить hg serve ... <many args> как службу Windows?

UPDATE: Спасибо за разные подходы. Мы остались с hg serve, оконный парень в нашей компании смог установить его как не совсем надлежащий сервис.

Ответы

Ответ 1

Вы должны проверить Джерреми Скиннер на своем блоге на эту тему. Он объясняет, как вы можете размещать хранилища Mercurial на IIS7 и использовать некоторую красивую маршрутизацию URL. Я сделал это на своей машине, и это работает как шарм. Он требует некоторой конфигурации, но он того стоит.

1 ошибка в его сообщении, я заметил, что он пишет о hgwebdir.cgi, но я не мог найти его. Я нашел hgweb.cgi, так же как и копирование с этим файлом.

Ответ 2

Или вы можете использовать SCM-Manager

Ответ 3

Использование веб-сервера, такого как apache/lighttpd/iis, дает множество функций, таких как аутентификация или поддержка HTTPS. Но "hg serve" - это простое и быстрое решение. Кроме того, "hg serve" может обслуживать несколько репозиториев. Но служба hg сама не может быть запущена как служба Windows, потому что она не может отвечать на команды управления Windows. Таким образом, использование HgService является хорошим решением для того, чтобы сделать "hg serve" реальной службой Windows.

Вот пример моей конфигурации. Я выполнил следующие шаги:

  • Установить TortoiseHG
  • Установить HgService
  • Создайте папку "C:\Repositories" и поместите в нее необходимые репозитории.
  • Создайте "C:\Repositories\hgweb.config" со следующим содержимым:
[paths]
/ = C:\Repositories\*

[web]
style = monoblue
  • Изменить HgService.exe.config в C:\Program Files\Mercurial\HgService
<add key="CommandLine" value="hg.exe"/>
<add key="CommandLineArguments" value="serve --prefix=/hg --address 0.0.0.0 --port 80 --web-conf c:\Repositories\hgweb.config -A access.log -E error.log" />
  • Запустите службу

Надеюсь, что эта последовательность действий будет полезна и вам.

Ответ 5

hg служит отлично работает с NSSM!