hg充当Windows服务

Ada*_*deg 15 windows service mercurial

我想在Windows服务器上使用mercurial.因为我想通过http来拉和推,这hg serve似乎是最简单的解决方案.它工作正常,但我在每次重启后重新启动它,所以我需要它作为Windows服务.手动安装它sc create ...不起作用,它创建了一个服务,当我尝试启动它时会引发错误.我发现了一些对这个问题的引用

但如果有的话,他们的记录很差.(当然,我可以安装一个Web服务器并使用hgweb,但它看起来更复杂.)您是否有任何经验如何轻松设置hg serve ... <many args>为Windows服务?

更新:感谢您采用不同的方法.我们住在一起hg serve,我们公司的windows-guy设法安装它作为一个不太合适的服务.

小智 5

或者你可以使用SCM-Manager


Rus*_*nko 5

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

这是我的配置示例.我按照以下步骤:

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

[web]
style = monoblue
Run Code Online (Sandbox Code Playgroud)
  • 修改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" />
Run Code Online (Sandbox Code Playgroud)
  • 启动服务

希望这一系列的行动也对你有所帮助.


Jan*_*n_V 2

您应该查看杰里米·斯金纳 (Jerremy Skinner) 关于此主题的博文。他解释了如何在 IIS7 上托管 Mercurial 存储库并使用一些不错的 url 路由。我在我的机器上做到了,效果非常好。这需要一些配置,但这是值得的。

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

  • hgwebdir.cgi 已重命名为 hgweb.cgi,修订版为 1.6。 (5认同)