• 締切済み

subversion復旧時の作業コピーについて

subversion で、svnsync による同期で バックアップをとっています。 復旧時にはそのバックアップから再度空のレポジトリを作成し、 svnsyncで同期させて復旧しようと考えています。 同期を逐次行ってない場合、復旧時にはバックアップ先のレポジトリより ローカルにチェックアウトした作業コピーのリビジョンの方が新しくなります。 クライアントでTortoiseSVNを使用していますが、 ローカルで作業コピーからコミットをかけようとすると 最後のコミットから変更/追加されたファイルはありません。 今回、TortoiseSVNがすることはありません となり、コミットができません。 更新しようとすると「エラー リビジョンXはありません 」となります。 レポジトリをリストアした場合、チェックアウトし直すしかないのでしょうか。

みんなの回答

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>レポジトリをリストアした場合、チェックアウトし直すしかないのでしょうか。 そのようですね。 http://daipresents.com/2008/subversion15_svnsync_roolback/ の注意点とか。 svnsuncがどのタイミングで行われたか…が問題のような気もしますが。

tenma0305
質問者

お礼

回答ありがとうございます。 同じことやられてる方いたんですね なんとか無理やり考えて以下の方法で復旧してみました。 少ないデータで試したので多量のデータでできるかわかりませんが… 1.バックアップ先のデータも事前にチェックアウトしておく。(A) 2.サーバのリポジトリをバックアップデータから同期して復旧させる 3.(A)を再配置して復旧したリポジトリを参照するようにする 4.ローカルの最新の作業コピー(B)をクスポートして(C)を作成する 5.(A)配下に(C)配下のファイルを上書きコピーする 6.(A)をコミットする これで一応追加、更新分は反映されるかと思いますが、バックアップの リビジョン前に存在していたが、バックアップのリビジョン後に削除されたものが 反映されないので5の前に以下を追加(削除ファイルが無ければやる必要ないですが) (1) (B)と(A)でフォルダ比較をツールで行い、削除ファイルのリストを作成する (2) 削除ファイルリストの頭にsvn delete を付加してdos上で実行 これで少ないデータですがコミットできることを確認できました。 ただ、(2)で消したファイルがコミット後のログに何故か削除で出力されないようですが データは更新できたので、これでいこうかと思います。

関連するQ&A