hg充当Windows服务

问题描述 投票:15回答:5

我想在Windows服务器上使用Mercurial。由于我想通过http拉动,所以hg serve似乎是最简单的解决方案。它工作正常,但是每次重新启动后我都将其重新启动,因此我需要将其作为Windows服务。使用sc create ...手动安装它无效,它创建了一个服务,在我尝试启动它时抛出错误。我找到了对此问题的一些参考]

但是,如果有的话,它们的文献资料很少。 (当然,我可以安装Web服务器并使用hgweb,但似乎更加复杂。)您是否有任何经验,如何轻松地将hg serve ... <many args>设置为Windows服务?

更新:感谢您使用的不同方法。我们选择了hg serve,我们公司的Windows管理员设法将它安装为不正确的服务。

windows mercurial service
5个回答
2
投票

您应该在此主题上查看Jerremy Skinner his blogpost。他解释了如何在IIS7上托管Mercurial存储库并使用一些不错的url路由。我是在我的机器上完成的,它就像一个魅力。它需要一些配置,但值得。

我注意到他的帖子中有1个错误,是他在写有关hgwebdir.cgi,但我找不到那个。我确实找到了hgweb.cgi,因此也找到了与此文件的复制粘贴。


5
投票

使用Web服务器(例如apache / lighttpd / iis)提供了许多功能,例如身份验证或HTTPS支持。但是,“ hg服务”是一种简单快速的解决方案。此外,“ hg服务”可以服务于多个存储库。但是hg serve本身不能作为Windows服务运行,因为它不能响应Windows控制命令。因此,使用HgService 是使“ hg服务”成为真正的Windows服务的一个很好的解决方案。

这里是我的配置示例。我遵循以下步骤:

  • 安装TortoiseHG
  • 安装HgService
  • 创建“ C:\ Repositories”文件夹,并将所需的存储库放入其中。
  • 使用以下内容创建“ C:\ Repositories \ hgweb.config”:
[paths]
/ = C:\Repositories\*

[web]
style = monoblue
  • 在C:\ Program Files \ Mercurial \ HgService中修改HgService.exe.config
<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
投票

或者您可以使用SCM-Manager


2
投票

2
投票

Hg发球搭配NSSM正常!

© www.soinside.com 2019 - 2024. All rights reserved.