2009-06-17 134 views
8

目前,我有一堆在它不同的項目的一個大SVN倉庫,具體如下:將SVN回購的一部分複製到新回購?

/ 
Project1/ 
      trunk/ 
      tags/ 
      branches/ 
Project2/ 
      trunk/ 
      tags/ 
      branches/ 
Project3/ 
      (etc...) 

不過,現在我試圖把它分解成不同的版本庫(因各種原因),並我想每個項目如下:

/ 
trunk/ 
tags/ 
branches/ 

如果可能,所有的歷史和外部應保持不變。但是,我不確定這是否可以實際完成。我在SO上看到過幾個類似的問題,但沒有一個完全解決我在這裏遇到的問題。基本上我試圖用舊版本庫的歷史記錄「拉出」一個子目錄及其全部內容,並將全部內容放到它自己的(新的)存儲庫中。

我問不可能嗎?

+0

偉大的問題+1。這一定是可能的。儘管如此,你可能會在動脈瘤和動脈瘤之前結束。 – 2009-06-17 20:20:36

+0

「不相關的編程」 - J/K,我只是因爲這種類型的評論而感到惱火,而且需要吹散一些蒸汽:) +1和fave'd :) – cwap 2009-06-17 20:23:38

回答

9

使用

svnadmin dump path/to/repository > repo.dmp 

,然後用svndumpfilter只有一個子樹加載到一個新的存儲庫。

4

由於SVN 1.7,你可以使用

svnrdump dump path/to/repository > dump 

獲得轉儲。儘管Stefans解決方案有效,但它確實需要訪問服務器負責回購。 svnrdump可以通過任何可以讀取的回購協議在網絡上運行。