2010-11-09 53 views
10

我正在使用mercurial進行源代碼管理。我想要一個主開發分支,然後有與「v1.0」「v1.01」和「v2.0」一致的時間點,以便在任何時候我都可以說出「v2.0 「並粉碎它上面的一些錯誤。我聽說有人說我需要標籤,有人說我需要書籤,有人說我需要命名分支,還有人說我只需要維護多個克隆的存儲庫。Mercurial Release Management

從我的角度來看,多克隆回購似乎是一個糟糕的選擇,因爲我喜歡DVCS的一件事是,一旦你克隆了「回購」,你就擁有了所有過去的歷史,並且可以完全從某些筆記本電腦恢復,如果你的中央服務器燒燬。如果您的回購分散到各地,我覺得您會失去這種好處,除非您希望人們克隆5回購並將其維護在本地計算機上。這關係到我,因爲大多數人都認爲這是一個很好的方法,但它在邏輯上對我沒有意義。 (我知道這不是一個正確的備份方式,但沒有完全訪問回購的一部分而不回到服務器對我來說似乎很奇怪)

所以對我來說,把所有東西放在一起的方法必須可以是標籤,命名分支或書籤。但是,我似乎無法區分這些。人們傾向於將書籤解釋爲「有點像標籤,有一些注意事項」,並將分支命名爲某種移動標籤,這可能比克隆更好。

我真的很喜歡git風格的分支(單個回購,多個分支),但是,我不想訴諸怪異的插件或黑客使它看起來像git。我想了解適當的mercurial方式。

獎勵:「小規模」分支如何適應混合,即您想在自己的分支中使用小功能?

回答

0

像Mercurial或Git這樣的DVCS可以很容易地克隆回購。這並不意味着您將其用於您的發佈管理工作流程。

每個人都有完整的mercurial repo只是DVCS的副作用。這意味着當主存儲庫有些丟失時會有冗餘。

您可以使用DVCS,使您可以擁有一個主存儲庫,您可以在其中推送更改並從中提取更改,就像客戶端服務器VCS(subversion)一樣,具有可脫機工作的額外優勢。

爲您發佈管理工作流程,你還是應該看看

  1. 書籤,標籤和分支。

關於每個主題都有足夠的討論。

下面提供與克隆,書籤,並命名爲分支

2

命名分公司分支良好的簡要信息 - 在每次提交你做有一個該提交所針對的分支的字段。除此之外,在具有命名分支的回購和具有多個頭的回購之間沒有區別。合併命名分支時,它就像常規合併一樣,分支名稱將從當前活動分支中提取。對於長期的v1.x分支來說,這更可能是你想要的。

書籤 - 浮動標籤非常像提示在您的存儲庫中。僅限本地,除非您進行某種邊帶同步。很適合做功能分支,或者需要跟蹤正在發生的事情,但不需要與他人分享。

標籤 - 如果你需要確切地知道在V1.0

我會用樹枝名稱爲發展1.x的分支2.x的分支等,然後使用標籤發佈的一份名爲提交好爲1.0版本標記實際發佈的內容,1.1將在1.x樹上完成,然後1.1版本將成爲其中的內容標籤。我不會讓書籤成爲流程的一部分,因爲您必須手動同步它們(注意在更新版本的mercurial書籤中可以遠程同步,儘管它仍然需要用戶干預。)

2

我從來沒有理解過克隆回購作爲匿名分支機構。

hg branch feature-name是我喜歡如何滾動。

0

我正在使用mercurial進行源代碼管理。我想要一個主開發分支,然後有與「v1.0」「v1.01」和「v2.0」一致的時間點,以便在任何時候我都可以說出「v2.0 「並粉碎它上面的一些錯誤。

我建議您爲每個發行版本添加標籤。

如果您需要發佈針對以前版本的錯誤修復,您應首先創建命名分支或基於版本標記克隆新存儲庫。一旦你處理了這個錯誤,你會將這個錯誤修復合併回你的主要開發分支。

因爲結果是相同的,所以使用命名分支或克隆確實無關緊要:錯誤已修復,修復程序已發佈到以前的版本,修復程序已併入主開發分支。閱讀other answers,給兩種方法一個嘗試,並使用你喜歡的。就我個人而言,我使用命名分支來存放這些長期存在的發行版分支,以便每個應用程序發行版的所有歷史記錄都存儲在一個存儲庫中。

因此...標記每個版本和分支「按需」。

0

您需要標記來標記v1.0,v1.01和v2.0等版本。對於分支開發(錯誤修復,功能分支等),您可以使用書籤 - 它們現在非常好支持協同使用(見http://mercurial.aragost.com/kick-start/en/bookmarks/#sharing-bookmarks)。如果您需要長期存在的分行(即他們將在可預見的未來將進入回購行)使用命名分行。他們會是一個不錯的選擇,例如有v1,v2,...分支的發展。

你可以只使用書籤短期和長壽命僅枝樹枝命名,但它成爲標準的做法時,你可以給喜歡的書籤。

另請參閱mercurial: mix named branches and bookmarks以獲得關於書籤和命名分支如何不同的快速圖形回答。