Backlog のSVNを別サーバーに移す方法

Pocket

sample

システム部の渡辺です。
業務で SVN を使ってまして、SVNリポジトリはだいたい Backlog を利用しています。

http://www.backlog.jp/

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で出力したダンプファイル名}

完了です。