2010-09-07 115 views
2

我正在設置我的自由職業者服務器,它將使用Mercurial進行所有版本控制。每個項目都有自己的文件夾,並有自己的存儲庫。然後,我可以通過轉到該特定文件夾從我的家用計算機,工作計算機或任何其他計算機進行克隆。如何正確地在瀏覽器中提供Mercurial存儲庫?

我想將這些存儲庫上傳到網絡瀏覽器中,以供我在需要時進行視覺瀏覽。我環顧四周,看到這個:https://www.mercurial-scm.org/wiki/HgServeNginx

這看起來像是沿着正確的軌道,因爲我會在這臺服務器上使用Nginx。但我很想知道我會如何正確設置它。我需要做些什麼特別是通過Web瀏覽器有效地爲我的服務器上的多個存儲庫提供服務?

對此的任何幫助或經驗的洞察將是非常有用的,以確保我正確地做到這一點。

非常感謝。

回答

1

使用該鏈接,您可以配置儘可能多的位置,因爲您將擁有回購站。在每一個回購目錄,你需要運行汞柱服務:

cd repos/repo1;   
nohup hg serve -p 8000 & 
cd repos/repo2; 
nohup hg serve -p 8001 & 

然後你可以通過nginx的只是代理的所有請求發送到正在運行的服務器汞。這不是很好的方法。此方法需要手動編輯nginx配置,運行hg serve等。但是,此方法允許您爲每個repo創建單獨的auth設置。所以如果你打算與顧客分享回購,你可以輕鬆地管理這個。

取而代之,您可以使用特殊腳本,該腳本由mercurial-hgwebdir提供。 詳細信息時,您可以在此頁:https://www.mercurial-scm.org/wiki/PublishingRepositories#Publishing_Multiple_Repositories

更新:我對服務器善變1.6版,並runnung回購的網絡用戶界面,我們使用這個腳本hgwebdir.py

#!/usr/bin/env python 
import sys 
import os 
os.environ["HGENCODING"] = "UTF-8" 
from mercurial.hgweb.hgwebdir_mod import hgwebdir 
from mercurial.hgweb.request import wsgiapplication 
from flup.server.fcgi import WSGIServer 

def make_web_app(): 
    return hgwebdir('/home/hg/hgwebdir.conf') 

WSGIServer(wsgiapplication(make_web_app), 
     umask=0000, 
     bindAddress='/home/hg/hg.sock').run() 

hgwebdir.conf是看起來是這樣的:

[web] 
allow_push = some_useronly 
baseurl = 
push_ssl = false 
[collections] 
/home/hg/repos = /home/hg/repos 

運行命令:nohup hgwebdir.py &,你需要flup PYT漢模塊,所以:的easy_install flup

相關nginx.conf部分是:

server { 
    listen 80; 
    server_name hg.example.com; 
    gzip off; 
    include fastcgi_params; 
    location/{ 
     client_max_body_size 30m; 
     auth_basic "Restricted Area"; 
     auth_basic_user_file /home/hg/hg.password; 
     fastcgi_pass unix:/home/hg/hg.sock; 
    } 
} 
+0

@扎達 - ZORG這看起來複雜得多。看到我將使用Nginx(而不是Apache),我需要使用類似FastCGI的東西來運行.cgi腳本?我不太確定如何使用Nginx進行設置。 – littlejim84 2010-09-07 23:57:39

+0

它還在該鏈接頁面的頂部顯示:「請注意,從Mercurial 1.6版開始,hgwebdir.cgi腳本不再存在,其功能已合併到hgweb.cgi腳本中。如果要發佈多個請按照相應的說明,將hgweb.cgi替換爲hgwebdir.cgi。「 – littlejim84 2010-09-07 23:58:46

相關問題