2014-05-07 75 views
1

我有一個SVN倉庫有兩個單獨的項目合併標籤:SVN:如何從不同的項目

project_1 
    /trunk 
    /branches 
     /1.0 
    /tags 
     /1.0.0 

project_2 
    /trunk 
    /branches 
     /1.0 
    /tags 
     /1.0.0 

正如你所看到的,每個人都有相同的分支/標籤號碼。想象一下,每個項目中都有不同的文件。

我想將這些合併爲一個新項目project_3。也就是說,新項目的trunk將所有文件/從project_1trunkproject_2,該1.0分公司將擁有所有的文件歷史記錄/從project_1project_2,以及1.0.0標籤1.0分支歷史將所有的文件/來自project_1project_21.0.0標籤的歷史記錄。

我的第一個想法是使用多個svn cp執行來完成此操作。我遇到的一個大問題是not being able to copy just the subdirectories of a directory to another directory。我無法理解這篇文章中討論的解決方案是否適用於這裏的情況。另外,這篇文章和許多解決方案已經有六年了,我想知道SVN是否有任何改變,對此有所幫助。

目標是建立一個統一的項目,儘可能保留儘可能多的歷史記錄。採取什麼最好的方法?請注意,切換到另一個VCS不是一個選項。

回答

2

如果要合併數據歷史,你不能使用SVN複製」,則必須使用dump |負載循環:

svnrdump sump URL/OF/DIR ... > dump + svnadmin load --ignore-uuid --parent-dir NEW_PARENT ... < dump

相反svnrdump的你可以嘗試svnadmin dump | svndumpfilter

+0

有沒有辦法使'svnadmin加載'工作與存儲庫的URL或只能使用本地簽出的東西? –

+0

@sparc_spread不,你正在加載轉儲不是實際的回購。 svnsync但這是一個非常先進的工作。我會轉儲這兩個回購和導入他們到一個新的回購。 – gbjbaanb

+0

現在只有一個回購項目有兩個項目,我希望在同一個回購項目中創建第三個項目。這是可行的還是你認爲我需要一個新的回購? –