我想在Windows服务器上使用mercurial。由于我想通过http进行拉取和推送,hg serve
似乎是最简单的解决方案。它工作正常,但我在每次重启后重新启动它,所以我需要它作为Windows服务。使用sc create ...
手动安装它不起作用,它创建了一个服务,当我尝试启动它时会抛出错误。我发现了一些对这个问题的引用
但是如果有的话,他们的记录很差。 (当然,我可以安装一个Web服务器并使用hgweb,但它看起来更复杂。)您是否有经验如何轻松地将hg serve ... <many args>
设置为Windows服务?
更新:
感谢您采用不同的方法。我们住在hg serve
,我们公司的windows-guy设法安装它作为一个不太合适的服务。
答案 0 :(得分:5)
使用诸如apache / lighttpd / iis之类的Web服务器提供了许多功能,例如身份验证或HTTPS支持。但'hg serve'是一个简单而快速的解决方案。此外,'hg serve'可以服务多个存储库。但是hg serve本身不能作为Windows服务运行,因为它无法响应Windows控制命令。所以使用HgService 是一个很好的解决方案,使'hg serve'成为真正的Windows服务。
以下是我的配置示例。我按照以下步骤操作:
[paths]
/ = C:\Repositories\*
[web]
style = monoblue
<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!