[Solaris][備忘録][Subversion]Subversionで2ヶ所のリポジトリの同期を取るメモ
前回のあらすじ
参考サイト
- http://www.asahi-net.or.jp/~iu9m-tcym/svndoc/svn_backup.html:title
- http://www.ilovex.co.jp/blog/system/other/subversion.html:title
- http://www.02.246.ne.jp/~torutk/subversion/intro.html:title
- http://d.hatena.ne.jp/pasela/20090206/svn_backup:title
- http://terai.xrea.jp/Subversion.html:title
前提
- 以下の二つのサーバがある
- Aサーバ:開発を進んでいるリポジトリがある(r222)
- Bサーバ:これからAサーバのリポジトリと同期をとりたいリポジトリがある(r111)
差分のdumpとってload(失敗)
Aサーバ
- 進んでいる分のダンプを取る。
- rオプションでダンプを取るリビジョンを指定できる。一つだけだとそのリビジョンだけ。(222ならリビジョン222)範囲指定する場合はAAA:BBBとする
$ svnadmin dump リポジトリパス(/home/xxx/yyyなど) -r 111:222 --incremental > repo.dump
- これをなんらかの方法でBサーバへ移動する(ftpでもUSBでも)
Bサーバ
- svnadmin loadコマンドで差分ダンプファイルを流しこむ。
- リビジョンがかぶっているとエラー(リビジョン111未満のもの)
$ svnadmin load リポジトリパス(/home/xxx/yyyなど) < repo.dump
<<< オリジナルのリビジョン 111 に基づき、新しいトランザクションを開始しました
* パスを追加しています : trunk/xxx ...svnadmin: ファイルが既に存在します: ファイルシステム 'リポジトリパス', トランザクション xxx-xx, パス 'trunk/xxx'
- - 112からダンプしたファイルをloadする…とうまくいく予定だったのだが、なんかファイルのチェックサムが違うといわれた……。
$ svnadmin load リポジトリパス(/home/xxx/yyyなど) < repo.dump
<<< オリジナルのリビジョン 112 に基づき、新しいトランザクションを開始しました
* パスを編集しています : trunk/xxx/a.sh ... 完了しました。
------- 新しいリビジョン xxx を (オリジナルのリビジョン xxx からロードして) コミットしました >>>
<<< オリジナルのリビジョン 113 に基づき、新しいトランザクションを開始しました
* パスを編集しています : trunk/xxx/b.sh ... 完了しました。
* パスを編集しています : trunk/xxx/c.sh ...
svnadmin: ファイル '/trunk/xxx/c.sh' のチェックサムが一致しませんでした:
期待: f566e489511cea2fd1e6 ...
実際: 0f76ab4f5d0625e9de9c ...
フルダンプをとる => 新しくリポジトリを作成 => loadでも同じファイル(リビジョンは違った)でコケたので別の方法を考える……。
hotcopy(成功)
このサブコマンドは、すべてのフック、設定ファイル、そしてもちろんデータベースファイルを含む、リポジトリの完全な「ホット」バックアップを作成します。
http://www.caldron.jp/~nabetaro/svn/svnbook-1.4-final/svn.ref.svnadmin.c.hotcopy.html
ただし可搬性に乏しいとの事。今回は同マシン、OS、Subversionバージョンなので大丈夫だと思う。まずAサーバでコピー。
$ svnadmin hotcopy リポジトリパス(/home/xxx/yyyなど) コピー先のリポジトリパス
a /home/xxx/yyy OK
a /home/xxx/yyy/hooks OK
a /home/xxx/yyy/hooks/start-commit.tmpl 3K
...
a /home/xxx/yyy/format 1K
これをBサーバへ持ってくるだけ。フルバックアップしかできないのでこれしか方法はない?
とりあえず一時しのぎはできたけど、チェックサム解消法も考えないといけないな。
- http://d.hatena.ne.jp/replication/20120405/1333548839:title
- http://rack990.sakura.ne.jp/archives/entry-184.html:title
- http://d.hatena.ne.jp/espresso3389/20090208:title
- http://web.archive.org/web/20101221154224/http://nonn-et-twk.net/twk/svn-checksum-mismatch:title
- http://glob.bushi.net.nz/glob/2007/02/14/subversion-checksum-mismatch-easy-workaround/:title
- http://weekbuild.blog39.fc2.com/?mode=m&no=30:title
- http://www.caldron.jp/~nabetaro/svn/svnbook-1.4-final/svn.ref.svnadmin.c.hotcopy.html:title
kk_Ataka
うーん、同じリポジトリ間で再び同期とったらいけたなー
違う点はdumpファイルも絶対パスにしてたくらいだけど
関係ないよなぁ
1347359483