2017-01-30 111 views
-1

這就是我試圖完成svnadmin的 - 移植項目的子目錄花葯項目的根目錄

Project_A 
    -SubFolder_Y 
     Project_X 

Project_B 
    Project_X 

所以基本上從項目A子目錄「Project_X」遷移到B項目與根所有修訂。

我想使用svnadmin命令,因爲我有權訪問SVN服務器。

我知道,我想這樣的東西沿着線:

1. svnadmin dump \\Repositories\Project_A > ProjectA.dump 
2. svndumpfilter include Project_X --drop-empty-revs --renumber-revs <Project_A.dump> Project_X.dump 
3. svnadmin load --ignore-uuid \\Repositories\Project_B <Project_X.dump 

這似乎並不工作,我缺少什麼嗎?

在此先感謝!

+0

項目A和項目B是不同的儲存庫,對不對? – bahrep

+0

*這似乎不工作,我在這裏錯過了什麼?* - 什麼不工作?你有任何錯誤? – bahrep

+0

@bahrep是ProjectA和ProjectB是不同的。上面的代碼也會保留'SubFolder_Y'作爲我不想要的Project_X的父項。 –

回答

0

首先,您必須閱讀SVNBook chapter about repository history filtering。在使用一些測試回購測試之前,請勿將svnadmin load轉儲到真實存儲庫。您必須確保svndumpfilter生成的過濾轉儲包含您期望並希望包含的所有數據。

上面的代碼也將保持「SubFolder_Y」作爲我不想

這是覆蓋在上面鏈接的文檔章節 Project_X的父母。 SVNBook建議您使用文本編輯器手動編輯轉儲文件,或者通過腳本重寫或刪除父路徑(在您的案例中爲SubFolder__Y)。這個任務的複雜程度取決於你的轉儲文件的版本號,它的大小,版本庫路徑等等。但是一般來說,這是一個不平凡且潛在危險的任務,我建議你避免手動修改轉儲文件。

而不是重寫父路徑,您可以在加載過濾的轉儲後將Project_X移動到新存儲庫的根目錄。

的命令應該如下:

svn move FROM-URL TO-URL -m "ENTER LOG MESSAGE"