2010-05-24 89 views
18

我們最近有一個SVN分支已經合併回主幹,並且需要對該功能/功能區域進行一些更多的工作。我建議使用同一個分支,但被告知一旦它被集成到主幹後就不應該重新使用分支(SVN文檔中提供了一個參考,現在我找不到它)。 這表明一旦你合併回樹幹,一個分支是相當無用的,所以我的問題是一旦分支不再需要,它應該被刪除還是保留?你應該如何處理舊的SVN分支?

回答

17

當我整合一個分支時,我將它從branches/移動到branches/integrated/。保持branches/清潔,因此很容易找到當前的工作,但也可以很容易地挖掘舊分支,以查看做了哪些更改而無需執行大量修訂號考古。

+1

我稱它爲分支墳墓。 – 2010-05-24 21:13:37

+1

我用過「閣樓」。 – 2010-05-24 21:18:18

+2

爲了讓自己開心,我還使用了「修剪過的舊分支」提交的評論 – 2011-07-28 13:28:57

1

經過一段時間項目結束後,我刪除了舊分支。

您可以重複使用分支名稱,但爲什麼?名字很便宜。不要將你的分支稱爲「工作」,而是要更具體一些,如「數據轉換階段1」。

+0

如果你刪除了一個分支,然後嘗試使用相同的名稱創建另一個分支,會發生什麼?在我們的例子中,我們有一個(我認爲)像「數據轉換」這樣的特定名稱,不知道我們會有一個階段2! – 2010-05-24 20:17:42

+0

分支(您刪除的舊分支和使用相同名稱創建的新分支)是不同的,並且不共享修訂歷史記錄。它們的名稱只有相似之處,但它們可能會被賦予不同的名稱,因爲您會得到相同的效果。 – 2010-05-24 20:19:07

+0

您可以重複使用分支名稱。我只是儘量不要。在你的情況下,我會做「數據轉換」,然後當我發現第二階段必須發生時,使它成爲「數據轉換階段2」。 – 2010-05-24 20:34:58

0

我建議不要刪除舊的分支,除非他們造成問題。它實際上並沒有爲你節省任何空間,如果你需要的話,它可以很容易地查看舊版本。

將分支合併到主幹後重用分支幾乎肯定是一個壞主意。

+1

yup,重用分支名稱就像重複使用昨天的襪子 – shfx 2010-05-24 22:09:02

5

SVN 1.5引入了「mergeinfo」屬性,它允許您在支持重複分支更新的同時輕鬆地將分支重新集成到主幹。這允許你創建一個分支,從主幹更新分支,最後將分支重新集成到主幹(svn merge --reintegrate)。例如,當您創建分支來修復錯誤或開發功能時,這很有用。

mergeinfo的實現方式不允許你做後續的重新集成,所以這就是爲什麼你不推薦重用分支的原因。

當您想要在發佈分支上開發bug修復並定期重新集成到主幹時,這對於「發佈分支」是有問題的。

如果你想重用一個分支,通常的模式是創建一個新的副本(分支)具有相同的名稱:

  1. 刪除分支
  2. 提交
  3. 重建分支(分支在具有相同名稱的路徑)
  4. 提交新的分支
  5. 工作

當您「重新創建」分支時,在步驟3中,合併信息將被還原,因此您可以在未來重新整合而不會出現任何問題。

回到你的問題:「所以我的問題是一旦一個分支不再需要,應該只是刪除或保留? 我會保留分支,所以它會在HEAD修訂版中可見。分支消失是令人困惑的(「嘿,我們是否在上週創建了0.1版本的分支?」「嗯,我不記得...檢查回購歷史記錄」)

至於重用分支,我會使用約定永遠不會重用分支,並且如果您需要「添加一些問題」,請重新創建它。 但在我看來,使用不同的分支名稱更清晰。您可能可以使用命名約定來識別分支。例如,原件將是分支機構/ Issue-1和後續分機分支機構/ Issue-1.0,分支機構/ Issue-1.1等。

Mergeinfo參考。

http://blogs.open.collab.net/svn/2008/07/subversion-merg.html http://blogs.open.collab.net/svn/2009/11/where-did-that-mergeinfo-come-from.html

0

好做法,同時制定了大項目,就是名稱中使用從項目跟蹤工具的任務名稱的分支:如「DEV-1512」,「FEAT-512」,或錯誤追蹤系統門票:「BUG-5142」等

當任務完成後,在生產服務器上運行並運行,刪除該分支。你總是可以合併回來。

PS。 想像$回購runung svn ls /分支機構,9999個分支機構;)

+0

我完全可以看到包含跟蹤編號的好處,但我也有描述性的東西。 FEAT-132-image-blur-function,只是爲了避免爲其他團隊成員查找這些數字。 – 2013-11-05 09:56:23

4

From Wikipedia:「一旦一個分支被切斷或者從源刪除任何其他方式,這是最常見的被稱爲棒」

所以我認爲你應該在分支機構的同一級創建一個「棍子」目錄

+1

+1爲聰明 – Kyle 2014-01-29 19:11:19