2012-10-06 56 views
3

我有一個subrepos的回購,並且想要做hg servehg爲subrepos服務

在其他計算機上,我試圖

hg clone http://address:8000/ new_repo 

情形1:我原來的回購過,在.hgsub,表格的行:

sub_repo_1 = sub_repo_1 
sub_repo_2 = sub_repo_2 

我另一臺電腦上了:

Requesting all changes 
adding changesets 
adding manifests 
... 
updating to branch default 
abort: HTTP Error 404: Not Found 

(服務計算機剛纔等待)

(並且只有new_repo中的sub_repo_1。我試過更新,拉...錯誤)

我試圖實際克隆sub_repo_2,並不斷收到錯誤404(機器人發送和接收計算機)。

方案2:同樣的事情發生在我替換.hgsub線與

sub_repo_1 = http://address/sub_repo_1 
sub_repo_2 = http://address/sub_repo_2 

是汞服務無法滿足subrepos?或者 - 我做錯了什麼?

注意:我已經更新了subrepos中的hgrc文件,以便每次匹配.hgsub中的路徑。

+0

我想這樣做。我正在考慮盜用hg serve?!?! – stephenmm

回答

1

您可以使用TortoiseHG爲具有子庫的存儲庫託管mercurial服務器。 TortoiseHG實際上調用hg serve來創建一個不同的web.config文件。

要使用TortoiseHG託管,請轉到Repository - > Web Server ...在TortoiseHG Workbench中。

0

我使用HgService來託管存儲庫,這是我找到的解決方案。

如果您使用的是HgService,則需要編輯web.config文件並重新啓動該服務。

如果web.config[paths]是設置這樣的:

[paths] 
remote_repo = "path/to/remote_repo" 

雙星(**)添加到路徑是這樣的:

[paths] 
remote_repo = "path/to/remote_repo/**" 
0

hg serve作品與subrepos。事情是,hg serve不會自動識別您的回購包含subrepos。

假設有以下文件夾結構

- repo 
    - subrepo1 
    + file1.txt 
    - subrepo2 
    + file2.txt 
    + file3.txt 

回購是主要的存儲庫和subrepo1subrepo2回購兩個subrepositories:

  1. 創建裏面的網頁配置文件回購不要在版本控制中添加。我將它稱爲.hgwebconf,如果需要,可以更改名稱。
  2. 在此文件中配置subrepos的所有路徑。添加以下內容:

    [paths] 
    /repo = ./* #all repos will be known by the url /repo 
    /repo/subrepo1 = subrepo1 #adding subrepo1 to be available in hg serve 
    /repo/subrepo2 = subrepo2 #similar to above 
    
  3. 使用--web-conf屬性進行使用的路徑創建的Web配置文件執行hg serve。這裏有一個例子:

    hg serve --web-conf .hgwebconf <other configurations you use ...> 
    

就是這樣。現在你可以訪問你的服務器víahttp,克隆你的repo或任何subrepo並使用它。