我將我們所有的源代碼轉移到SVN倉庫中幾個星期,真正開始看到這種魔力。我現在有一個非常簡單的問題,它會對我的SVNing方法做很多說明。管理SVN標籤和中繼
我在一個客戶的網站上工作了3個星期,在ProjA的主幹上工作。在我離開之前,我在「ProjA/tags/release-09.11.17」(日期戳版本號)下創建了一個幹線分支,這樣我就可以準確構建緊急bug修復。
剛纔客戶打電話給我一個確認了一個簡單的數學錯誤,我修復了它。我不知道如何處理更新我們的回購協議,我看到有幾個選項:
1)提交修改到ProjA主幹,並刪除「ProjA /標籤/釋放,17年9月11日」
2)提交對ProjA和「ProjA/tags/release-09.11.17」的更改
3)提交對ProjA的更改,爲TODAY「ProjA/tags/release-09.11.19」創建一個新標籤並刪除舊標籤「ProjA /標籤/釋放,17年9月11日」。
任何這些都有我看到它的優點/缺點。在接下來的幾周內,ProjA將看到很多發展,客戶不會再看到,直到我再次回到現場。
想法和原因?謝謝!!
「如果您想根據該標籤開始一個新的開發分支,那麼...」 「我的外賣建議是儘量避免實際提交標籤(而不是最初創建的標籤)」。 您是否認爲即使使用明顯的錯誤修復而不是發展變化,這種方法仍然可行? – bufferz 2009-11-19 15:24:39
這是一個公平的問題。誘惑很高,只需對標籤進行快速更改即可。這就是svn將分支和標籤簡單地作爲主幹副本(或其他方面)的簡單方法。在其他源代碼控制系統中,你不會真的想用這種方式使用標籤(在git中,你肯定會創建一個分支),所以我認爲這是一個糟糕的主意。 – MikeSep 2009-11-19 15:36:16
我認爲你需要一個發佈分支,在發佈的過程中一路標記。發佈分支的末尾可能總會被標記,並且該標籤看起來是多餘的,直到您將新的高優先級修補程序添加到發佈分支的末尾。與此同時,您可以在幹線上進行更多的實驗性更改。 SvnBook中有一節簡要介紹了這種分支風格: http://svnbook.red-bean.com/en/1.5/svn.branchmerge.commonpatterns.html#svn.branchmerge.commonpatterns.release – MikeSep 2009-11-19 15:38:20