2010-03-31 88 views
2

我知道,你可以根據這個結構在SVN整理文件:爲什麼在svn中使用分支?

樹幹 分支 標籤

你,如果你想有一個單獨的開發線主幹複製到文件夾中的分支。稍後您將此分支合併回主幹。

但我想知道爲什麼我和我的團隊應該這樣做。爲什麼要複製一個分支到一個分支,並使用這個副本來合併它回到主幹,並且意味着代碼經常更新/提交以保持與主幹同步。那麼爲什麼不直接與幹線工作呢?

創建分支有什麼好處?

會很棒,如果有人能夠闡明這個話題。

在此先感謝

+0

http:// stackoverflow。com/questions/34975 /分支策略 http://stackoverflow.com/questions/2100829/when-should-you-branch http://stackoverflow.com/questions/16142/what-do-branch-tag-和 - 軀幹 - 真的意思 http://stackoverflow.com/questions/35646/do-you-continue-development-in-a-branch-or-in-the-trunk – Zoredache 2010-03-31 22:29:28

回答

9

試想一下,如果你的工作只與軀幹和重大改承諾,這將在2個月完成併發布測試這些更改。現在進入這個過程的3周,在軟件的最後一個主要版本中發現了一個嚴重的錯誤。您需要實施一項小修改來修復此錯誤,並且小修改需要基於生成最新主要版本的代碼。但是,您擁有的所有可用的主幹都有主要未經測試的更改。您可以做的最好的做法是使用日期/時間或標籤返回並嘗試創建用於上一個主要版本的源代碼的副本。

如果您在開始2個月發佈週期的新功能/更改之前創建了分支,那麼該主幹將保持不變,並且您可以輕鬆地使用主幹或從主幹再次分支來實施關鍵錯誤修復和發佈。此外,當您將主要更改重新合併到主幹中時,從差異中可以看出,已經實施了小錯誤修復,並且您可以確保它已整合。因此,確保下一個主要版本的發佈不會恢復「超出渠道」的關鍵錯誤修復。

+0

另外請注意,你可以保持一個單獨的該分支的副本作爲該特定版本的快照。所以你會永遠擁有一個v1.1分支和1.2分支。如果您的許可級別不同,您可以根據產品的不同「版本」進行調整。類似的事情可以通過標籤來完成,但我認爲每種方法都有一些怪癖,我不記得所有的方法。所以我不能說這是最好的方法。 – AaronLS 2010-04-01 19:44:54

6

分支的最重要的方面,在我看來,是讓你能夠在定期持續釋放樹幹。

分支機構允許您的開發人員完成任務並完成任務,直到完成爲止,而不會妨礙您的下一個版本的發佈。如果分支機構花費的時間比原計劃的時間更長,那麼在發佈之前,您不必拖延下一個版本的產品。

我希望幫助:)

2

如果您在開發v 3.0時需要繼續支持v 2.0產品,則需要v 2.0的分支,該分支與v 3.0分開。然後,您可以同時開發兩種不同的版本,而不會影響每個團隊的努力。

0

如果您需要在實現某個里程碑時啓動某些版本,則會發現需要該分支,您可以爲不同的版本定義不同的分支。它更清楚地瞭解代碼的數據庫,結構....你不覺得嗎?