hg充当Windows服务

时间:2011-03-03 10:38:00

标签: windows mercurial service

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

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

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

5 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

或者您可以使用SCM-Manager

答案 2 :(得分:3)

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

他发布的帖子中有一个错误,我注意到他正在写一篇关于 hgwebdir.cgi 的文章,但我找不到那个错误。我确实找到了 hgweb.cgi ,所以用这个文件进行了复制粘贴。

答案 3 :(得分:2)

答案 4 :(得分:2)

hg serve适用于NSSM