Subversionのリポジトリ移行

最近サービスのインフラをリニューアル中。
古いサーバをリプレースするんで新しいサーバにいろいろと移行中だったりします。

今日は開発に使っているSubversionのリポジトリをさくっと移行しました。
古いほうでバックアップして新しいほうでリストアするだけです。

バックアップ@旧サーバ

まず古いサーバにあるSubversionのリポジトリをバックアップ。

svnadmin dump /path/to/repos > backupfile

自分以外いじる人はいないのでhotcopyとかは特に考えず。

リストア@新サーバ

次に新しいサーバでリポジトリを作って、バックアップ内容をリストア。

svnadmin --fs-type fsfs create /path/to/newrepos
svnadmin load /path/to/newrepos < dumpfile

サーバを立ち上げて動作テスト。
ローカルからチェックアウトしてみたり、他のマシンからリポジトリの内容をブラウズしてみたり。

問題ないことを確認して完了。
簡単なもんですな。

2008/02/03追記

コミットしようとしたら認証を要求されてパスワードの設定忘れてたのに気がつきました。
ちなみにsvnserveで動かしてます。/path/to/repos/conf/svnserve.confを編集。

[general]
anon-access = none
auth-access = write

password-db = passwd
realm = brass repository

「anon-access = none」で認証されてないアクセスは一切認めず。
ちなみに「none」ではなく「read」を指定すると読み込みだけ可能になります。

「password-db」でパスワードファイル名を指定。
「realm」は認証の名前空間なので複数リポジトリを持っている場合はかぶらないようにしたほうがいいのだろうか?まあ複数リポジトリ持ってないので適当に設定。

次に/path/to/repos/conf/passwdを編集。

[users]
hogeuser = hogehoge

これで無事コミットもできるようになりました。

参考