2013-03-07 85 views
2

我試圖在工作中安裝Mercurial安裝程序以使用我們的舊代碼進行評估。我目前使用的「服務器」僅僅是一臺在我們的Intranet上運行帶有SP3的Windows XP的桌面。 「客戶端」安裝在我的本地桌面上,也運行帶有SP3的Windows XP。 (我也在兩臺機器上使用TortoiseHG。)配置Mercurial的內置服務器

Web服務器運行在http://localhost:8000,我可以在瀏覽器中查看存儲庫。但是,當我嘗試檢測傳出的更改時,出現HTTP 404錯誤。我可以看到服務器日誌中顯示的請求,所以我指向正確的位置,但它顯示GET http://host:8000/reponame?cmd=capabilities HTTP/1.1 404。無論我改變什麼設置,我似乎都無法讓客戶端成功執行鍼對回購的命令。有沒有人有一個想法,爲什麼這不會工作?

+0

您是否試圖推送到您自己的存儲庫?或者你有兩個存儲庫?我想你可能會感到困惑。 – 2013-03-11 13:32:45

回答

0

我有一個類似的設置,我也有類似的問題。

我用下面的命令來運行我的HG服務(這是在一個批處理文件):

hg.exe serve --prefix mercurial --address 123.12.1.1 --port 8008 --web-conf hg-web.conf --accesslog hg-access.log --errorlog hg-error.log 

在HG-web.conf我:

[web] 
style = default 
allow_push = * 
push_ssl = false 

[paths] 
my-repo = c:\hg\my-repo 

採用這種設置,我可以通過訪問url訪問我的存儲庫http://ip:port/mercurial/my-repo

我可以推送沒有問題。

試試這個設置,我希望它可以幫助你解決你的問題。

+0

所以,你運行你HG服務的批處理文件,然後它的啓動和運行? – NoSmallPlansHere 2013-03-07 21:07:37

+0

是的。就那麼簡單。 – 2013-03-08 04:30:49

0

好吧,當我在TortoiseHG啓動內部服務器(單回購,Repostory - Start Web-server從工作臺主菜單)

  • 服務器窗口告知「運行在localhost:8000」,但真正服務器的所有偵聽在叉接口(netstat -na節目TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING
  • 在克隆 - 編輯提交和(直接從THG)測試傳出我看到

% hg --repository Z:\clone outgoing http://10.1.14.94:8000/

comparing with http://10.1.14.94:8000/

searching for changes

changeset: 39:c57a9357ec55

tag: tip

user: I

date: Fri Mar 08 17:00:05 2013 +0600

summary: Test-change

前段時間我也從我的另一位主持人那裏將這些Mercurial回購推送到了這些地方。服務器配置是微不足道的,並且都在TortoiseHG設置中完成。

我的[web]部分在mercurial中。INI(僅此而已)

[web] 
port = 8000 
encoding = UTF-8 
allow_archive = bz2, gz, zip 
style = gitweb 

(推現已停用,只有拉模式工作)

PS:TortoiseHg 2.7.1版本的Windows XP SP3

0

推進裝置以移動變更從一個回購到另一個回購。你還沒有說你做回購的兩個獨立的克隆,然後嘗試從A推到B.因此,讓我們假設你困惑在這裏,並談論困惑:想象一下,我試圖從我自己的回購推到hg服務實例運行反對我自己的回購。這就像試圖打電話告訴自己一些事情。其次,如果你真的試圖從A推到B,並且確實有需要到達B的A的變化,那麼,你的實際問題可能是你沒有得到庫輸入正確到您的GUI工具,這是我的龜T Hogoise HG。在學習的時候,從命令行再次嘗試。如果你在這裏發生錯誤發佈錯誤:hg push http://myserver:8000

我第一次嘗試使用Mercurial,在使用Subversion的漫長曆史之後,我開始認爲我需要一個「服務器」組件比實際上更多。在subversion中,服務器是提交發生的地方。在mercurial中,提交發生在本地,當你推送到遠程(可能是中央)服務器時,你的團隊中的其他人就會看到你的改變。這是最大的區別。我猜你試圖推動,因爲提交發生在本地。如果你感到困惑的提交和推之間的差異,那麼我建議你看看http://hginit.com/

至於建立一個服務器,有三個很容易的選擇,我可以推薦:

  1. 「hg serve」來自命令行,如其他答案所示。很容易,只用於臨時使用。完美的學習。

  2. 安裝的Mercurial裏面的Apache(更容易比安裝的Mercurial裏面IIS)的永久網絡服務器完全認證和加密可能。如果您在Mercurial wiki上使用hgwebdir指令,它應該會花費你大約一個小時。如果您使用預先構建的解決方案,則應該花費更少的時間。我使用Bitnami的預製窗口解決方案,最近在5分鐘內完成了一個。 Bitnami使得可用的安裝程序,將讓蟒蛇,Apache的,善變的,和其他的東西,所有安裝在他們所謂的「堆棧」一起工作(一堆Ö已經工作的東西)。

  3. 這裏的真正輝煌的解決方案。在BitBucket.org上使用免費的私人網絡資源庫。免費供公衆(開源)和私人(小團隊和個人)使用,對於大型團隊來說相當便宜。管理員爲你付出的努力只不過是登錄到一個網站。你完成了。

+0

hg serve實例在單獨的機器上運行,所以我的假設是它將被視爲遠程存儲庫。代碼已經提交給我的本地存儲庫,我試圖做的就是將最初的變更集推送到遠程倉庫,這樣我就可以將它放到不同的機器上。當我嘗試hg push http:// myserver:8000時,出現「HTTP Error 406:Not Acceptable」。 – NoSmallPlansHere 2013-03-11 21:00:19

+0

這就是我上面的傢伙放下有關編輯hgweb.conf – 2013-03-11 22:35:22