• ベストアンサー

svnリポジトリ内の一部のフォルダのみリポジトリ化

現在、SVNでファイルの管理を行っています。1つのリポジトリに複数のプロジェクトを入れていたのですが、それぞれ進捗が激しくなってきたので、プロジェクトごとにリポジトリを作りたいと思っています。 それぞれのプロジェクトのファイル更新履歴もそのまま新しいリポジトリに引き継ぐことは可能でしょうか? どうぞ、ご教示頂きますようお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>それぞれのプロジェクトのファイル更新履歴もそのまま新しいリポジトリに引き継ぐことは可能でしょうか? プロジェクトというか…ディレクトリですよね? 以前にも説明したことがあったような気もしますが、 svnadmin dumpでダンプして、 svndumpfilterでフィルタして、 新しいリポジトリにsvnadmin loadで流し込む。 ということになるかと。 「Subversion リポジトリ 一部 抜き出し」辺りで検索してください。 SourceForge.jpだとシェル使えなかったと思われますのでそこら辺はどうなるやら……。 「SourceForge SVN ダンプ」だといくつか見つかるので、もしかしたらできるのかも知れません。 が、試したことはもちろんありませんが。

diy_sunny
質問者

お礼

回答頂きありがとうございます。 C:\myworkというカレントディスク内で test_worksというリポジトリフォルダがあるので、これを次のようなコマンドで、"test_works/test/project/proj1"というフォルダのなかのプロジェクトのみの履歴情報だけ取り出そうと思い次のようなコマンドを使用してみました。 C:\mywork\>svnadmin dump test_works | svndumpfilter include --drop-empty-rev s --renumber-revs test_works/test/project/proj1 > proj1_source.dat しかし、これだと svnadmin loadをやったときに、全く”test_works/test/project/proj1”のファイルが入っておらず、revsion履歴も全くないと出てくるのですが、 正しいコマンドの設定方法を教えて頂けませんでしょうか? どうぞ、よろしくお願い致します。

diy_sunny
質問者

補足

回答頂きありがとうございます。 C:\mywork\>svnadmin dump test_works | svndumpfilter include --drop-empty-rev s --renumber-revs test/project/proj1 > proj1_source.dat このやり方に変更してみたところ、”test/project/proj1”プロジェクトフォルダのみのファイルをdumpすることができました。 ただ、 http://dqn.sakusakutto.jp/2012/08/svndumpfilter_subversion.html こちらの方のサイトを参考にsvndumpfilterを試してみましたが、dumpではエラーが出ることはほとんどないが、それをloadした際に過去に移動や依存性のあるフォルダも含めてsvndumpfilterでとっておかなければエラーが出てしまうということで、結構リポジトリのダイエットは難易度が高いなと感じています。 後で消せるからと思ってsvnを忘備録的に使用していた私としてはちょっと後悔しております。 新規にリポジトリを作成してそれぞれのプロジェクトのリポジトリを立てようかと思っております。