svnsync エラー「svnsync: Revision being currently copied~」
svnsync の同期でエラーとなり同期できないなった場合の対処方法
svbversionのバックアップで定期的にsvnsync で同期をとってバックアップしています。最近、実行すると以下のエラーになりました。
$ svnsync sync file:///home/admin/svnrepo svnsync: Revision being currently copied (1014), last merged revision (1012), and destination HEAD (1013) are inconsistent; have you committed to the destination without using svnsync?
エラーとなった原因を調べてみると、以下の原因が考えられるようです。
- 同期先リポジトリに直接コミットされた場合
- 不正な操作で
svn:sync-*
プロパティに不正値が設定された場合
リポジトリの初期化
解決方法は色々とやりましたがうまくいかないので、リポジトリの初期化して再同期することにしました。まずは初期化の手順を以下となります
1.新しい空のリポジトリを作成する
エラーとなっているリポジトリは、一旦リネームでバックアップしてから、新しいリポジトリを作成します。
# 以前のリポジトリはリネームして、再度同じディレクトリを作成 $ mv /home/admin/svnrepo /home/admin/svnrepo_bak $ mkdir /home/admin/svnrepo # 新しいリポジトリを作成 $ svnadmin create /home/admin/svnrepo
2.リポジトリを初期化
下記のコマンドでリポジトリの初期化を実行します。
# 【書式】svnsync init [コピー先URL, ディレクトリ] [コピー元URL, ディレクトリ] $ svnsync init file:///home/admin/svnrepo https://example.com/svnrepo
3.フックスクリプトの設定
リポジトリのフックスクリプトを設定します。
$ echo '#!/bin/sh' > /home/admin/svnrepo/hooks/pre-revprop-change $ echo 'exit 0' >> /home/admin/svnrepo/hooks/pre-revprop-change $ chmod +x /home/admin/svnrepo/hooks/pre-revprop-change
初期化したレポジトリの再同期の実行
初期化が正常に行われたら、下記のコマンドで再同期を実行します。全リビジョンをコピーするのでリポジトリが大きいとすごく時間がかかります
$ svnsync sync file:///home/admin/svnrepo
ディスカッション
コメント一覧
まだ、コメントがありません