2009-08-21 28 views
5

有沒有人試過用Laura Wingerd和svn一起描述的Practical Perforce豆腐秤?使用svn的豆腐秤

豆腐規模告訴我們如何在分支之間傳播變化(密碼線)。穩定分支的變化應該被合併到較不穩定的分支(公司到軟件),並且不穩定分支的變化應該被複制到穩定分支(軟到公司)。請參閱How Software Evolves

這樣會導致開發分支對合並更穩定的分支所做的更改,從而改進開發分支中的代碼,從而引入新的開發和錯誤修正。

Figure taken from Practical Perforce (ISBN 10: 0-596-10185-6) http://dl.getdropbox.com/u/136976/tofu%20scale.png

所以,問題是:你能在SVN,如果做到這一點;在分支機構工作時,你如何從家長那裏更新?我從CVS知道,從一個分支到另一個更新給你很多的問題,當你想你的修改合併到父分支(通常是主線)

+1

請問您能詳細說一下「豆腐秤」的含義嗎? – starblue 2009-08-21 13:15:48

+0

「變更應該從穩定的分支合併到較不穩定的分支,並且應該以相反的方向複製變更。」 - 其中之一是功能? – peterchen 2009-08-21 13:50:22

+0

我不明白這是一個問題 – zvolkov 2009-08-21 14:02:46

回答

2

是的,你可以做到這一點的顛覆,它是或多或少的標準做法。

這個想法是從較穩定的,較少的變化合併到較不穩定的,從而最小化不相關的變化,這會使合併更加困難。

合併回主線是通過首先將主線的所有更改合併到分支中,然後複製分支,即通過合併分支替換主線。

3

閱讀更多關於這個問題的信息我發現我認爲是爲了在svn中的分支機構之間進行這種變化傳播所需要的精確描述。

它在C. Michael Pilato等人的書Version Control With Subversion中描述。在子章節Basic Merging - Keeping a Branch in Sync

下面引用了這本書。

Subversion知道你的分支的歷史,並知道它什麼時候從樹幹分開。要將最新,最大的幹線更改複製到您的分支,首先確保您的分支的工作副本是「乾淨的」 - 它沒有由svn狀態報告的本地修改。然後只需運行:

$ svn merge http://svn.example.com/repos/calc/trunk 

一旦你有一個主幹乾淨的工作拷貝,你準備好您的合併分支回吧:

$ pwd 
/home/user/calc-trunk 

$ svn update # (make sure the working copy is up to date) 
$ svn merge --reintegrate http://svn.example.com/repos/calc/branches/my-calc-branch 
$ svn commit -m "Merge my-calc-branch back into trunk!" 

請閱讀整個章節(甚至可能是本書)在開始之前。建議閱讀。