ホーム DoRuby svnリポジトリの移動

svnリポジトリの移動

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

rick No34です。
いまさらですが、svnリポジトリ移動の手順を記載します。

環境

サーバA(svnが有るサーバ)
サーバB(svnを移行するサーバ)
サーバC(サーバBのレプリサーバ)

手順

・Aサーバ
バックアップ

svnadmin dump リポジトリロケーション > バックアップ名
例:
svnadmin dump /var/lib/svn/hoge > hoge.dump

hoge.dumpをサーバBへscp等で送信

・Bサーバ
svnディレクトリ作成

mkdir /var/lib/svn

svnリポジトリ用ディレクトリ作成

mkdir /var/lib/svn/hoge

ディレクトリ権限変更

chown -R apache:apache /var/lib/svn/hoge
daemonだったりもする

バックアップ移動

mv ./hoge.dump /var/lib/svn

svnリポジトリ作成

svnadmin create /var/lib/svn/hoge/

リストア

svnadmin load /home/svn/hoge/ < hoge.dump

単一サーバの場合は、これで終了

・Cサーバ
svnディレクトリ作成
(Bサーバ同様省略)
svnリポジトリ用ディレクトリ作成
(Bサーバ同様省略)
ディレクトリ権限変更
(Bサーバ同様省略)
SVNリポジトリ作成
(Bサーバ同様省略)
設定ファイル作成

cd /var/lib/svn/hoge/hook
vi pre-revprop-change

#!/bin/sh
exit 0

vi pre-revprop-change.bat

exit 0

初期化

svnsync init svn+ssh://バックアップ先//var/lib/svn/hoge svn+ssh://バックアップ元//var/lib/svn/hoge

※ssh接続先ポートが変更されている場合

vi ~/.subversion/config

[tunnels]
ssh_hoge = ssh -p 8888

これでsvn+sshをsvn+ssh_hogeに変える

権限変更

chmod +x /var/lib/svn/hoge/hooks/pre-revprop-change

同期

svnsync sync svn+ssh://バックアップ先//var/lib/svn/hoge

バッチ設定
同期のコマンドをバッチで設定、もちろんパスワードレスの状態にしておく
終了

その他

・差分だけダンプ

svnadmin dump /var/lib/svn/hoge -r 12039:12040 –incremental > hoge.dump

・差分リストア

svnadmin load /var/lib/svn/hoge/ < hoge.dump

・リビジョン確認方法

/usr/bin/svnlook youngest /var/lib/svn/hoge

・リビジョン強制戻し

cd /var/lib/svn/hoge/db
rm /revs/x/消したいリビジョン
vi current # 直したリビジョンに書き直す
echo > rep-cache.db # キャッシュ削除
rm revprops/x/

注意点

現リビジョンが100で、後から90~91の差分リストをした場合
リビジョンの90~91が更新されるわけではなく、101,102として更新される。

記事を共有

最近人気な記事