Develop with pleasure!

福岡でCloudとかBlockchainとか。

svnsyncでリポジトリを移行

svnリポジトリを別サーバのリポジトリに移行するのに、svnsyncを利用してみた。svnsyncはSubversion1.4以降に含まれている。

まず、移行先として新規にSVNリポジトリを作成する。

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を再構成しインストールしなおす必要がある。