將svn的項目轉移到另外一個倉庫中


前幾天在做一個項目的時候,因為需要,需要將Server A 上SVN倉庫 repos1中的項目pro1遷移到Server B 上的SVN倉庫中,首先想到的是:通過復制,但是仔細一想,這樣是不可能的;然后想到的是先把項目pro1 checkout到本地,然后再 將本地的項目 import 到 ServerB的svn倉庫中,但這樣一來,ServerB上的SVN倉庫中 就好比完全是一個新的pro1項目了,也就失去了svn管理的意義了。下面有一種方法可以解決:

 

(在進行下面的操作時,請注意備份倉庫數據,以免操作出錯,損壞數據;同時保證需要遷移的項目,都已經commit,以免丟失修改)

1.首先關閉兩台服務器的svn所有服務,比如(apache、svn),(以避免在進行遷移時又有其他的用戶訪問提交,更新什么的...  

 

2.將ServerA上的 項目pro1所在的倉庫進行備份,使用命令:

      svnadmin dump oldrepos > reposdumpfile

      上面的 oldrepos 表示服務器Server1上需要備份的倉庫,如:E:\svn_root\repos1;

       reposdumpfile表示一個中轉的文件,文件名隨意;

       運行完上面的命名后,文件reposdumpfile就存儲了倉庫oldrepos的信息和所有項目;

 

3.如果需要將Server A上repos1中的所有項目遷移到Server2上,則將reposdumpfile文件直接拷貝到Server2上,然后轉到 步驟5;

 

4.如果我們只需要repos1倉庫中的pro1則我們需還要對reposdumpfile文件進行過濾,命令如下:

       svndumpfilter include pro1 < reposdumpfile< pro1dumpfile

       上面的 include 表示 包含的意思,也就是說,將reposdumpfile中的 pro1 的項目取來放到文件 pro1dumpfile 中;如果使用 exclude 這表示相反的意思,將不是項目pro1的項目存放到文件中去;然后將pro1dumpfile文件拷貝到Server2上;

 

5.在Server2上運行如下命令,則完成了項目的遷移;

      svnadmin load newrepos < pro1dumpfile

      上面的newrepos表示:Server2電腦上的 svn倉庫的路徑 如:F:\svn_root\repos2;

 

6.最后打開svn服務,這樣就成功的將項目遷移到了其他倉庫中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM