3

我們使用SVN進行版本控制。主要開發工作在中繼線中完成,並且在適用於每個用戶的情況下創建分支(當預期的更改很複雜時)。修復標記版本中的錯誤(subversion)

不時地,測試版本被標記(例如到/tag/v0.4)。

然而,可能會發生某個嚴重錯誤在中繼(在其他開發期間)的某個時間修復的情況。

現在我想創建一個標籤/tags/v0.41這是一樣的/tags/v0.4但只有固定的這個單一嚴重錯誤(可能多處嚴重錯誤,但肯定不是一切從trunk)。

如何繼續使用TortoiseSVN?

我建議是這樣的:

  1. /tags/v0.4創建一個分支(svn copy)至/tags/v0.41
  2. 合併適用的變化從中繼/tags/v0.41並提交。

但這是一個好主意嗎?

我該怎麼做,從具體幹線版本(沒有別的),以/tags/v0.41合併?事實上,這不會是一個標籤,而是一個不太好的分支......

回答

5

你列出的程序是正確的。

需要創建分支以確保只有針對特定錯誤的修復被提交到新的穩定版本(至中繼),並且沒有額外的(可能中斷的)功能從開發中錯誤地移植版。

  • 搜索樹幹的承諾是明確解決您 發現的bug,

  • 從它創建一個補丁並將其應用到/tags/v0.41工作副本 (或僅將需要的中繼修訂合併到/tags/v0.41 工作副本)。

注意:如果有多個提交或沒有承諾,只是修復了這個bug不接觸任何東西,你必須手動的代碼中的相關行復制到新的標記版本!

+0

嗨,謝謝!還有兩個問題:1)所以我不需要分支,或者我?我簽出/tags/v0.4,將修補程序和簽入應用到/tags/v0.41?還是我混合了? 2.)使用補丁而不是任何合併來做到這一點真的是正確的嗎?我在手冊中讀到應該避免修補程序,因爲它會中斷文件/修訂之間的連接。但也許這與此處不相關... – divB 2012-07-19 11:39:43

+0

@divB是的,事實上,它合併更正確,只要你有一個或多個修正,只是修復了錯誤,沒有別的(在其他情況下,你需要手動編輯文件)。您需要結帳/tags/v0.4,合併(或應用該補丁,請參閱上文)僅從主幹中獲得必需的修訂,並從工作副本創建新的/tags/v0.4.1分支。 (分支機構需要分離您發佈的每個版本的代碼,所以1)如果您將來需要再次檢索該版本的代碼,則不必搜索日誌,2)您不需要混合穩定和alpha代碼)。 – 2012-07-19 13:08:39

相關問題