synsync で Subversion リポジトリのバックアップ

詳しいことはウェブ検索等で調べてもらいたい。以下は作業ロクでしかない。

Subversion に同梱の svnsync なるコマンドを用いると Subversion リポジトリのバックアップが簡単に行える。要するにミラーだ。ただしコマンド一発とはいかず、前準備としてほんの数行のファイルを作る必要がある。

まず、バックアップ先のリポジトリを作成した。

% svnadmin create repo

次に、repo 内に hooks/pre-revprop-change というファイルを以下の内容で作成。実行属性が必要だ。

% cat repo/hooks/pre-revprop-change
#!/bin/bash
exit 0
% ls -l repo/hooks/pre-revprop-change
-rwxr-xr-x 1 toshiharu toshiharu 19 2010-06-09 23:59 repo/hooks/pre-revprop-change*

そして、svnsync init でバックアップ先のリポジトリを初期化。

% svnsync init file://`pwd`/repo svn+ssh://hisa/home/toshiharu/svnrepos/repo
リビジョン 0 の属性をコピーしました。

最後に同期を行った。

% svnsync sync file://`pwd`/repo
リビジョン 1 をコミットしました。
リビジョン 1 の属性をコピーしました。
リビジョン 2 をコミットしました。
リビジョン 2 の属性をコピーしました。
ファイルのデータを送信しています .
リビジョン 3 をコミットしました。
リビジョン 3 の属性をコピーしました。
ファイルのデータを送信しています ..
...

以降、リポジトリの内容を同期したい場合は、最後の例のように svnsync sync を実行すればいい。

日頃からバックアップを取ることは大事だ。Subversionリポジトリとて例外ではない。