2009-06-17 20 views
8

現在、私は次のように、その内の異なるプロジェクトの束を持つ大規模なSVNリポジトリを持っている:SVNリポジトリの一部を新しいリポジトリにコピーしますか?

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

はしかし、私は今、(様々な理由のために)別のリポジトリにそれを破るしようとしている、と可能であれば、すべての履歴と外観はそのまま残しておいてください。

可能であれば、すべての履歴と外観は元のままです。しかし、実際にこれができるかどうかは分かりません。私はこれに似たいくつかの質問を見ましたが、私がここにある問題を完全に解決するものはありません。基本的に私は古いリポジトリから履歴を持つサブディレクトリとその内容全体を "引き出す"ことを試みており、その全体を独自の(新しい)リポジトリに集めています。

私は不可能を求めていますか?その後、

+0

大きな質問+1。それは可能でなければならない。あなたはおそらく終わりの前に動脈瘤があるでしょう。 –

+0

"プログラミングに関連していない" - J/K、このタイプのコメントでちょっと腹が立っていて、スチームを吹き飛ばす必要があります:) +1とfave'd :) – cwap

答えて

9

使用

svnadmin dump path/to/repository > repo.dmp 

とだけ新しいリポジトリにサブツリーをロードするためにsvndumpfilterを使用しています。

+0

ええ...そうですと言うと: –

+1

ステファン(とジョン)ありがとう、これは私にhttp://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.filteringどのアドレス私の正確な問題。 –

+0

この解決策は、 'ProjectN'を新しいリポジトリの最上位ディレクトリとして残すことに注意してください。 (つまり、すべてのパスは 'ProjectN /'で始まります)リンクはプレフィックスなしで新しいリポジトリをインポートする方法を示しますが、大きなリポジトリやバイナリファイルでは実用的ではないので手動でダンプを編集する必要があります。 – xOneca

4

SVN 1.7以来、あなたはダンプを取得するために

svnrdump dump path/to/repository > dump 

を使用することができます。 Stefansのソリューションは機能しますが、レポをホストするサーバーへのアクセスが必要です。 svnrdumpは、読み取り可能なリポジトリを使用してネット上で動作します。