[注:我搬到這個從serverfault,如計算器可能更合適]多源項目的最佳SVN存儲庫佈局是什麼?
因爲我們是在我們正在開發一個WordPress主題開工的項目,一些WordPress的自定義插件,iOS應用和Android應用程序。我們通過一個內部的Subversion服務器處理所有的源代碼,其中每個項目都有自己的倉庫。
我的問題是:什麼是最佳佈局設計爲SVN倉庫這個項目的?我可以將它放在1個存儲庫中,還是應該爲主題,插件和移動應用程序創建單獨的存儲庫?
[注:我搬到這個從serverfault,如計算器可能更合適]多源項目的最佳SVN存儲庫佈局是什麼?
因爲我們是在我們正在開發一個WordPress主題開工的項目,一些WordPress的自定義插件,iOS應用和Android應用程序。我們通過一個內部的Subversion服務器處理所有的源代碼,其中每個項目都有自己的倉庫。
我的問題是:什麼是最佳佈局設計爲SVN倉庫這個項目的?我可以將它放在1個存儲庫中,還是應該爲主題,插件和移動應用程序創建單獨的存儲庫?
難道你不能只用獨立的分支創建一個單獨的項目嗎?
的問題不在於是否單獨的存儲庫,但他們是否應該作爲單獨的項目或沒有,轉化爲自己是否會被拆分,合併在一起進行管理。在Subversion中,您可以在一個存儲庫中擁有多個項目,因此您可以始終只有一個存儲庫。
的答案取決於模塊將如何緊密地聯繫在一起。如果您希望某個組件的任何版本在合理範圍內與任何其他版本的其他組件一起使用,那麼它們應該作爲單獨的項目進行管理(每個組件都有自己的trunk
和branches
,因此您需要有theme/trunk
和theme/branches
和plugin/trunk
等等。)。如果你希望的修改通常會觸及多個組件,它們作爲單個項目進行管理(一個trunk
和branches
,所以你將有trunk/theme
和trunk/plugin
等)。
在一個側面說明,我建議重新考慮顛覆的選擇。較新的分佈式系統(按照受歡迎程度Git,Mercurial和Bazaar的順序)提供了更多的靈活性和卓越的分支和合並。顛覆實現在那些年後仍然顯示出粗糙的邊緣,主要部分是因爲底層模型不太適合分支。
與顛覆,分佈式系統總是有每個倉庫的一個項目,因爲分支是分開的概念那裏,所以你必須單獨的存儲庫(一臺服務器上是這樣),如果你決定有單獨的項目。
謝謝Jan。我們目前正在使用您推薦的第二種佈局,根據您的解釋最有意義:當我們更改插件中的某些內容時,我們還經常更新主題和移動應用程序。我很高興聽到這是處理這個問題的正確方法。 我也理解你關於分佈式系統的觀點。我們已經使用SVN很長一段時間了,並且從來沒有一個很好的理由切換。但當需要出現時,我願意切換。 – 2012-02-13 15:41:49
@vvanscherpenseel:我從來沒有遇到過我不得不從顛覆中逃離的一點。相反,對顛覆不當的麻煩並不是偶然的,或者沒有某種功能可以爲你節省一些工作。 – 2012-02-13 17:40:42
是的,這是一個想法,但我怎樣才能爲單獨的項目發佈分支?就像WordPress主題的1.0版本和iOS源代碼的1.1版本一樣? – 2012-02-13 15:22:27
-1:分支適用於預期會合並在一起的事物。那並且只有那。這種情況甚至都沒有。 – 2012-02-13 15:22:28