2011-06-30 63 views
1

我們有一個運行CodeIgniter的大型網站,目前我們正在概述更好的Mercurial設置,然後是我們現在擁有的設置。我們現在的想法是,通過以下回購設置,我們將把多個產品合併到一個alpha環境中。一旦獲得銷售批准,它將進入uat獲得客戶批准。使用Mercurial在多個存儲庫中維護產品隔離

    [LIVE] 
        | 
       [UAT] 
        | 
       [ALPHA] 
     /  |  \ 
[PRODUCT1]  [PRODUCT2] [PRODUCT3] 

我們關心的是如何處理這種情況product1product2已經都合併在alpha並且做了uat的情況,但需要product2uat刪除,因爲客戶已經發現需要解決的問題,但product仍然需要去現場。這是一個問題,因爲基於我們對Mercurial的理解,它並不完全是爲了拆分產品或刪除特定的變更集樹而構建的。

有關如何以簡單的方式完成此任何想法? Mercurial是正確的解決方案,還是有其他我們應該研究的東西?你遇到過這種情況,你做了什麼?

更新

我一直在書籤閱讀起來。隨着它們被拉/推進行,它可能使用書籤來跟蹤諸如product1 v1.4.21之類的版本來控制這些多個存儲庫中包括哪些版本的產品?

書籤好像不喜歡的最佳解決方案,因爲它仍然不允許我從product2alpha庫中取出的變更,只留下product1alpha存儲庫中。

+0

是不同目錄下的不同產品嗎?還是他們不同的水銀分支? – krupan

+0

不同的回購 – Webnet

回答

0

我不知道我理解你,但我認爲你想要的東西像this。 (這篇文章中的圖形是針對Git的,但它們也應該適用於Mercurial。)簡而言之,您將爲每個環境(alpha,UAT,發佈,顯示停止bug修復,等等)。

我有點困惑爲什麼你有三個產品在一個存儲庫。它們是相同的,只是不同的版本?然後使用標記的修訂在分支上標識它們,但它仍然是一個存儲庫(的確是一個代碼庫)。他們是不同的產品? (如果是這樣,你爲什麼合併它們?)然後,你可以使用單獨的存儲庫保持乾淨。