所以,我已經熟悉了這一點:
http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html在SVN中處理供應商分支機構的最佳方式是什麼?
我的問題是你如何處理同時具有穩定的釋放,要整合的α/β分支廠商分支?
因此,假設您遵循SVN書中的原始示例。你必須:
的svn://本地主機的/ home/SVN /供應商/ libcomplex的/電流
的svn://localhost/home/svn/vendor/libcomplex/1.0
的svn://本地主機/家/svn/vendor/libcomplex/1.1(同電流)現在
,說你有你自己的「計算」的應用程序的兩個版本:
計算(這基本上是主幹==鈣2.0)
計算-1.0(向公衆公開)
假設calc-1.0使用libcomplex 1.0和calc(在trunk中)使用了libcomplex 1.1,它仍在開發中。
libcomplex 1.0中存在一個錯誤,並且發佈了一個新版本來修復該錯誤:libcomplex 1.0.1。 libcomplex維護者也將這個bug修復包含在libcomplex 1.1中。
您尚未準備好發佈calc 2.0,因此您需要將libcomplex 1.0.1集成到您的供應商分支中,然後更新calc-1.0以製作bug修復版本。
它去哪兒了?
你不能把它放在svn:// localhost/home/svn/vendor/libcomplex/current中,因爲1.1當前位於那裏。
您是否將svn://localhost/home/svn/vendor/libcomplex/1.0複製到svn://localhost/home/svn/vendor/libcomplex/1.0.1,然後引入新版本?這樣你可以使用svn將1.0和1.0.1之間的差異合併到calc-1.0中。
在我之前的例子中,我的發行版有一個分支:calc 1.0。供應商文件夾不包含在calc下。你是否建議/供應商也分支?需要明確的是這裏是我描述例如: /供應商/ libcomplex的/ /鈣/中繼/ /鈣/支鏈/ 1。0/ 你的建議是不使用「當前」,只使用文件夾結構將不能適當地將版本之間的變化合併到主幹中,從而破壞目的。您需要此更改歷史記錄才能將更改合併到您修改原始供應商源的主幹中。 – 2009-08-18 16:55:49
我的方法是當你所做的所有工作都使用發佈的版本時。 如果您還在修改源代碼,那麼將供應商代碼視爲您自己的代碼(即將其包含在您的幹線分支中而不是將供應商作爲單獨的文件夾)可能會很有用。 但是你的方法也是有意義的。創建vendor/libcomplex/1.0.1分支,合併任何自定義,並將calc 1.0版本更新爲指向vendor/libcomplex/1.0.1,然後發佈calc 1.0.1。只要libcomplex 1.1準備就緒,合併定製,構建calc2.0,就可以開始了。 Trunk從不指向1.0.1 – 2009-08-19 01:13:38