將svn的項目從一台伺服器轉移到另外一台伺服器

來源:互聯網
上載者:User

標籤:java   使用   os   strong   檔案   資料   管理   new   

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

 

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

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

關閉svn

  killall svnserve 

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

      svnadmin dump oldrepos > reposdumpfile

如:svnadmin dump javaweb > javaweb2

      上面的 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

 如:svnadmin load javaweb < javaweb2

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

 

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

如:svnserve -d  -r /opt/svndata啟動

-------------------------------------------------------

親測成功

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.