システム部の渡辺です。
業務で SVN を使ってまして、SVNリポジトリはだいたい Backlog を利用しています。
Backlog の容量節約のために、一部を自社で管理している SVNサーバーに移行したいなとなりまして、やってみたらそんなに難しくなかったのでその手順をメモ。
1. Backlog の リポジトリをローカルに複製する
http://www.backlog.jp/faq/service/subversion-1.html
Backlog 公式記事「Subversion のリポジトリのエクスポートサービスはありますか?」、
ここに複製用の スクリプトを書いてくれてますので、これを利用します。
記事内のスクリプトをローカルPCに テキストファイルとして保存します。
ファイル名は「backlog_svnsync.sh」としておきます。
まず、backlog_svnsync.sh に実行権限を与えまして
$ chmod +x ./backlog_svnsync.sh
次に backlog_svnsync.sh を実行します。ここで渡す引数によって、どのリポジトリを複製するか決めます。
必要になるのは「バックログのサブドメイン部分」と「リポジトリ名」で、
「バックログのサブドメイン部分」は、利用しているバックログのURL https://○○.backlog.jp/ の ○○ の部分のことです。
「リポジトリ名」は、複製したいバックログプロジェクトのプロジェクトキーのことです。
スクリプト実行時にその2つを引数として渡します。
$ ./backlog_svnsync.sh ${バックログのサブドメイン部分} ${リポジトリ名}
スクリプト実行して処理が終わりますと、目的のリポジトリの複製が、リポジトリ名のディレクトリ名で作成されています。
2. リポジトリ複製から svn の dump ファイルを作成する
svnadmin の dump で作成します。
$ svnadmin dump ${リポジトリのディレクトリ名} > ${出力するダンプファイル名}
3. dump ファイルから svnリポジトリを リストアする
2で dump したファイルを、移行したい svn サーバーに保存しまして、
$ svnadmin create ${新規リポジトリパス}
$ svnadmin load ${新規リポジトリパス} < ${2で出力したダンプファイル名}
完了です。