2011-05-20 149 views
3

我們剛剛從SVN切換到HG並討論了分支結構。我們提出了以下結構,需要一些評論,並希望知道這種結構是否會在未來出現問題。需要幫助mercurial分支結構

    * Tag v1.2.0 
        | 
        * Merge Branch v1.2.0 into Default 
       /| 
       /| 
       * | 
       |\ | 
Merge v1.1.2 | \| 
fixes into | * Tag v1.1.2 
v1.2.0 branch | | 
       | * Merge Branch v1.1.2 into Default 
       | |\ 
       | | \ 
    Commit code * | * Commit a bug fix 
       | | | 
       | | | 
Merge v1.1.1 * | * Branch v1.1.2 
fixes into |\ |/
v1.2.0 branch | \|/
       | * Tag v1.1.1 
       | | 
       | * Merge Branch v1.1.1 into Default 
    Commit code * |\ 
       | | * Commit a bug fix 
       | | | 
Branch v1.2.0 * | * Branch v1.1.1 
       \ |/
       \|/ 
        * Tag v1.1.0 
  • 每個標籤代表一個版本發佈。
  • Bug修復上v0.0.x分支
  • 小的改進和次要的新功能(化妝品更新到用戶界面等)只發生在v0.xx分支
  • 默認分公司(中心)只有發生總是穩定和測試代碼

問題:

  • 合併V1.2.0到默認分支之後,我們將能夠創造從標籤V1.1.2和RELASE /標記v1 V1.1.3的一個分支。 1.3?
  • 這個結構是一個有效的結構,還是我們試圖想出一些荒謬的東西,並且已經有一個解決方案/答案呢?

UPDATE:討論通過的Lasse五卡爾森所提供的解決方案後,我們最終同意,我們不會需要釋放V1.2.0後釋放V1.1.3。如果用戶想要接收更新,我們的用戶應該更新到v1.2.0行,v1.1.2將是v1.1.x行的最後一個更新。所以,這樣第一個問題就被消除了。感謝偉大的建議和提示Lasse。

謝謝大家!

+0

嗨Ry4an,已經接受它。我很感激他花時間回答了這個問題,並詳細解釋了這個問題。 – matte 2011-05-20 19:31:15

回答

3

您將無法追溯介紹1.1.3沿時間軸默認一個變更,你可以期待的最好如下:

  1. 更新回默認在您發佈1.1點0.2
  2. 爲1.1.3分支出來,並承諾
  3. 合併這在默認情況下,1.1.2標籤,這將創建默認分支另一頭,平行於時間軸1.2你現在工作
  4. 1.1.3的標籤和版本
  5. 合併這個新的頭到以前的頭,得到了bug修正到1.2.x的

買者:有一兩件事,當我測試這是.hgtags不得不被合併時,合併我的1.1.3,我發現默認內容轉換爲1.2.0默認內容。由於標籤總是從最頂端的變更集中讀取(我可能在這裏是錯誤的),這可能表明這不是最好的方式來做到這一點。至少我可能會等待標記,直到我將1.1.3合併到1.2.0時間線中(即下圖最頂端的合併。)

我的測試庫可以在這裏找到:https://lassevk.kilnhg.com/Repo/StackOverflow/answers/SO6071322

這將是這個樣子:

 
        * Merge Branch 1.1.3 into Default 
        |\ 
        | \ 
        | * Tag v1.1.3 
        | | 
        | * Merge Branch v1.1.3 into 1.1.x Default 
        | |\ 
        | | \ 
Tag v1.2.0  * | * Commit a bug fix 
        | | | 
        | | | 
Merge Branch  * | * Branch v1.1.3 
v1.2.0 into  /| |/
Default  /| |/ 
       * | + 
       |\ |/
Merge v1.1.2 | \|/ 
fixes into | * Tag v1.1.2 
v1.2.0 branch | | 
       | * Merge Branch v1.1.2 into Default 
       : : 

不管這是一個好主意,不知道,我還沒有管理一個在Mercurial中有很多類似版本的項目。

+0

如果我們爲每個版本分別進行分支並在這些分支上標記版本而不是默認分支,它會更好嗎?這樣,我們就可以繼續離開舊版本。 – matte 2011-05-20 12:07:04

+0

如果你看到我的編輯(警告),那麼是的,這可能不是最糟糕的主意。然而,你真正應該做的是在mercurial郵件列表上發佈這個問題,你可能不需要複製整個問題,只需要複製它的文本,然後在這裏引用這個問題。郵件列表在[email protected] – 2011-05-20 12:12:54

+2

添加了一個鏈接到我的測試庫:https://lassevk.kilnhg.com/Repo/StackOverflow/answers/SO6071322 – 2011-05-20 12:15:23