【问题标题】:hg serve as Windows servicehg 作为 Windows 服务
【发布时间】:2011-03-03 10:38:00
【问题描述】:

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

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

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

【问题讨论】:

  • Jeff 在codinghorror 上的sc create for svnserve example 对我有用,而且里面有多个参数——你可以将它用作模板。在我发现 sc 对abc= value 之间的空格非常挑剔之后。

标签: windows mercurial service


【解决方案1】:

使用 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" />
  • 启动服务

希望这一系列操作也对您有所帮助。

【讨论】:

    【解决方案2】:

    或者你可以使用SCM-Manager

    【讨论】:

    • 这是迄今为止我在 Windows 上尝试过的最简单的提供 HG 存储库的方法。启动 bat 文件有一个安装参数,该参数会将应用程序安装为 Windows 服务。非常好。
    【解决方案3】:

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

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

    【讨论】:

    • hgwebdir.cgi 已重命名为 hgweb.cgi 修订版 1.6。
    【解决方案4】:

    【讨论】:

      【解决方案5】:

      hg serve 与 NSSM 配合得很好!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-30
        • 2017-03-17
        • 2019-09-04
        相关资源
        最近更新 更多