我想在Windows服务器上使用mercurial。 因为我想通过http来拉和推, hg serve
似乎是最简单的解决scheme。 它工作正常,但我已经重新启动后,每次重新启动,所以我需要它作为一个Windows服务。 用sc create ...
手动安装它sc create ...
没有工作,它创build了一个服务,当我尝试启动它时会引发错误。 我发现这个问题的一些参考
但是如果有的话,他们的logging很差。 (当然,我可以安装一个web服务器并使用hgweb,但似乎更复杂。)您是否有任何经验,如何轻松地设置hg serve ... <many args>
作为一个Windows服务?
更新:感谢不同的方法。 我们住在hg serve
,我们公司的windows-guy设法把它作为一个不太合适的服务来安装。
你应该看看杰里米·斯金纳(Jerremy Skinner)关于这个问题的博客帖子 。 他解释了如何在IIS7上托管Mercurial存储库,并使用一些不错的URL路由。 我在我的机器上做了它,它像一个魅力。 这需要一些配置,但它是值得的。
在他的文章中我发现1错误是他正在写一个hgwebdir.cgi ,但是我找不到那个。 我找到了一个hgweb.cgi ,所以复制粘贴这个文件。
或者你可以使用SCM-Manager
使用诸如apache / lighttpd / iis之类的web服务器可以提供许多功能,如身份验证或HTTPS支持。 但“服务”是一个简单而快速的解决方案。 而且,“hg serve”可以服务多个存储库。 但是,hg serve本身不能作为Windows服务运行,因为它不能响应Windows的控制命令。 所以使用HgService是一个很好的解决方案,使'hg服务'一个真正的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" />
希望这一系列的行动也会对你有所帮助。
基于Apache的替代方案: HgServe – 适用于Windows的Mercurial Repository server
hg的服务与NSSM工作正常!