相反,一個「正常」的svn目錄結構,我用以下結構:從一個不尋常的svn目錄結構遷移到maven?
trunk/ project1/ project2/ project3/ ... branches/ project1-branch/ project1/ project2/ ... project2-branch/ project1/ project2/ ... tags/ project1/ V1 V2 ...
正如你看到的,我沒有爲每個項目單獨的三元組(主幹/分支/標籤)。
對於開發,我做了一個包含我需要的所有項目(有項目之間的依賴關係,有些項目只是庫)的trunk(有時是一個稀疏檢出)的結帳。
,我在這看到的好處是:
更新和簽入是容易的,因爲我有所有項目的一個共同的根目錄下(幹線)。一個簡單的
svn update
或svn commit
就可以做到。標籤或分支的創建很簡單,因爲它只是我必須爲此設置的主幹
svn copy
。 (分行和標籤實際上包含比需要更多的項目,而是一個svn copy
是便宜的,如果需要,我仍然可以在一個分支或標記做稀疏檢出。)從一個項目移動到另一個資源是很容易的,因爲他們都住在同一個存儲庫中。
因爲我可以肯定我不會錯過一個項目,所以全局重構(例如更改常用類的包)很容易。
合併很容易,因爲即使存在從一個項目到另一個項目的重構移動,我總是可以一次合併整個分支。
我打算遷移到Maven和拆分都從主幹的項目Maven項目。我想從maven依賴管理和可用插件中獲益(現在我正在使用巨大的自定義ant文件)。
現在我的問題是:
我必須改變SVN目錄結構來給每個項目自身的三重(主幹/分支/標籤)?我想答案是'是'。
如果我改變了結構,上面提到的哪些好處是否會鬆動(我的意思是用maven做什麼會更復雜)?
什麼是與maven做同樣的方法?
+1:非常感謝您的全面回答。我需要一些時間來處理所有的鏈接並做一些測試。 – tangens 2009-10-18 08:07:12
不客氣。如果有什麼不清楚,請告訴我。 – 2009-10-18 09:29:59