2013-04-02 67 views
1

我們的客戶希望擁有我們正在開發的源代碼。作爲其中的一部分,他們選擇了SVN。他們希望我們在最後開發代碼。SVN設置和重新整合功能

他們提出了以下結構。字母表示分支。 一旦DEV分支完成了代碼積累,他們需要一個名爲QA的新分支來擁有該代碼,以便QA團隊可以開始對其進行測試。如果他們發現任何錯誤,DEV團隊會更新DEV分支中的代碼,並且QA會再次將他們的代碼與DEV同步。

最後,代碼發佈到生產環境中,如果有任何錯誤,DEV-QA-Prod循環將再次出現。

A->B [DEV]---------- 
|\ |    | 
| C [ QA ]  | 
|     | 
|_______D[ PRODUCTION ] 

我們對SVN來說比較新。所以,我們在這方面有幾個問題。

1.一旦質量保證是好的,B和C的代碼基本相同或多或少。鑑於此,哪個分支應該被整合回A ?.是B還是C?或者根本不重要,因爲它們都有相同的東西。

2.如果確實是C,我們可以直接將另一個分支[B]的分支[C]重新集成到父母[A]嗎?

謝謝, Pavan。 enter code here

+0

這並不能直接回答你的問題,但是當我學習SVN時,這幫助了我很多 - http://weblogs.asp.net/bsimser/archive/2008/05/06/day-to-day-與-subversion.aspx。 – Scott

回答

0

如果QA只是簡單地記錄對它的錯誤,那麼我不會創建QA分支,從不實際觸及代碼並將修復提交到分支。爲什麼不給QA只讀訪問DEV分支?這樣,你就知道你只需要將DEV分支合併回trunk即可。

相反,如果QA 需要自己岔開DEV,因爲他們會犯修復,然後合併路徑應該是:QA - >DEV - >trunk

我不確定爲什麼你要創建一個PROD分支trunk post-QA。爲什麼不簡單地用tag trunk來描述發佈的版本號或名稱?然後,假設開發繼續在原始DEV分支上,並且如果在生產中發現錯誤,則可以在下一個版本DEV(合併回trunk後QA)中修正錯誤,或創建單獨的DEV分支關閉trunk標記的修訂版本並在此處應用修復。

希望這會有所幫助。

0

使用trunk作爲開發結賬。 trunk中的代碼應該是主要副本,其中執行bug修復和「安全」開發。

一旦您希望QA完成他們的工作,請創建一個新標籤,併爲其提供版本/內部版本號。

當QA發現錯誤時,主幹上的代碼是固定的。 QA測試正在運行時,在主幹上不必進行進一步的開發。 一旦修正了錯誤,將會創建一個新的標籤,並且必須再次運行QA測試。

如果你想開發新的功能QA測試/ bug修正週期運行時,你應該創建一個新的分支,從樹幹常常合併了,爲了所有的錯誤修正整合:新功能的發佈將包括從分支到幹線的合併以及新標籤的創建。等等。

QA可以使用svn switch命令從標籤跳轉到另一個標籤:我想他們不寫代碼;標籤在創建後不應被修改。