2011-03-03 19 views
15

我想在Windows服務器上使用mercurial。因爲我想通過http進行推送,所以hg serve似乎是最簡單的解決方案。它工作正常,但每次重新啓動後我都重新啓動它,所以我需要它作爲Windows服務。用sc create ...手動安裝它不起作用,它創建了一個服務,當我嘗試啓動它時會引發錯誤。我發現了一些引用到這個問題hg充當Windows服務

但他們不良記錄,如果在所有。 (當然,我可以安裝網絡服務器並使用hgweb,但看起來更加複雜。)您是否有任何經驗可以輕鬆地將hg serve ... <many args>設置爲Windows服務?

更新: 感謝您的不同方法。我們住在hg serve,我們公司的windows-guy設法把它安裝成不太合適的服務。

+2

編碼霍爾夫的傑夫的[sc創建svnserve示例](http://www.codinghorror.com/blog/2008/04/setting-up-subversion-on-windows.html)爲我工作,並且有多個參數在那裏 - 你可能能夠使用它作爲模板。在我發現sc對'abc = value'之間的空格非常挑剔後, – Rup 2011-03-03 10:42:10

回答

3

你應該檢查出Jerremy Skinner his blogpost在這個問題上。他解釋瞭如何在IIS7上託管Mercurial存儲庫並使用一些不錯的網址路由。 我在我的機器上做了它,它的作用就像一個魅力。它需要一些配置,但它是值得的。

他在他的文章中發現1個錯誤,我注意到他正在寫一個hgwebdir.cgi,但我找不到那一個。我確實找到了一個hgweb.cgi,所以複製粘貼這個文件。

+4

hgwebdir.cgi已更名爲hgweb.cgi,修訂版本爲1.6。 – 2011-03-03 15:09:44

4

或者你可以使用SCM-Manager

+1

這是迄今爲止在Windows上嘗試提供HG庫的最簡單方法。啓動bat文件有一個安裝參數,將安裝該應用程序作爲Windows服務。非常好。 – 2011-12-20 04:10:50

5

使用Web服務器如Apache/lighttpd的/ IIS提供了很多功能,如身份驗證或HTTPS的支持。但'hg serve'是一個簡單而快速的解決方案。此外,'hg serve'可以服務多個存儲庫。但是hg serve本身不能作爲Windows服務運行,因爲它無法響應Windows控制命令。因此使用HgService是使'hg serve'成爲真正的Windows服務的一個很好的解決方案。

這是我的配置示例。我也跟着下面的步驟:

  • 安裝TortoiseHG
  • 安裝HgService
  • 創建 「C:\庫」 文件夾,並把需要回購進去。
  • 創建 「C:\庫\ hgweb.config」 具有以下內容:
[paths] 
/= C:\Repositories\* 

[web] 
style = monoblue 
  • 修改HgService.exe。配置在C:\ Program Files文件\水銀\ HgService
<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" /> 
  • 啓動服務

希望這一行動順序將有助於你還。