svnのリポジトリを別サーバのリポジトリに移行するのに、svnsyncを利用してみた。svnsyncはSubversion1.4以降に含まれている。
svnadmin create /home/svn/newrepo
続いて作成したリポジトリのnewrepo/hooksフォルダ直下に存在するpre-revprop-change.tmplをコピーして、pre-revprop-changeを作成する。
cd /home/svn/newrepo cp pre-revprop-change.tmpl pre-revprop-change chmod +x pre-revprop-change
続いて、作成したpre-revprop-changeの中身を以下のように書き換える。
#!/bin/sh exit 0
いよいよ、svnsyncを使用。まずは初期化する。ちなみに新規に作成したリポジトリに1つでも何らかファイルを追加していたりするとエラーになるので、移行先のリポジトリは空のままである必要がある。(ユーザの設定なんかは問題なし。)
svnsync init 移行先のSVNリポジトリのURL 移行元のSVNリポジトリのURL
準備ができたら、いざ移行
svnsync sync 移行先のSVNリポジトリのURL
コマンド実行で、移行処理が走り、数分で終了。無事移行成功♪
ちなみにsvnsyncを利用する場合は、Subversionのインストール時にNEONが入っていないとリポジトリを参照する際に、
svnsync: Unrecognized URL scheme ...
とかいうエラーが出るので、もし発生した場合は、NEONをインストール後、再度Subversionを再構成しインストールしなおす必要がある。