2012-04-02 134 views
1

我們有幾個產品線圍繞一個通用核心構建,目前使用外部方式將其維護在SVN中。移到mercurial,移動到hg sub-repositories是很自然的。在多個項目之間共享核心代碼庫

事情是核心是相當大的(可能> GB,由SVN回購判斷),一個典型的開發者有時希望同時在幾個產品上工作,比如3-4。

我是否正確地認爲它通常意味着開發人員將核心複製到每個開發人員3-4次,並具有其整個歷史記錄?另外,如果開發人員希望在另一個產品中執行一些簡單的操作,那麼即使它已經在客戶端已經可用(幾次...),它也意味着核心必須先被拉取。

回答

0

爲了真正分享subrepository(和而不是其工作副本),您可以使用share extension。但是,這使得克隆過程有點違反直覺:

hg clone -U remote_core core 
hg clone -U remote_projectA projectA 
cd projectA 
hg share ../core core 
hg update 
cd .. 
hg clone -U remote_projectB projectB 
cd projectB 
hg share ../core core 
hg update 

依此類推。但是我警告你,這種設置會讓你頭痛不止。在工作中,我們有一個類似的設置,但是對於每個使用它的項目,共享子庫都有一個分支(不是命名分支,而是一個克隆分支,一個專用主​​存儲庫)。這樣,項目可以獨立修改共享代碼,同時仍然可以輕鬆合併它們。

相關問題