電子書籍の厳選無料作品が豊富!

subversion で、svnsync による同期で バックアップをとっています。

復旧時にはそのバックアップから再度空のレポジトリを作成し、
svnsyncで同期させて復旧しようと考えています。

同期を逐次行ってない場合、復旧時にはバックアップ先のレポジトリより
ローカルにチェックアウトした作業コピーのリビジョンの方が新しくなります。

クライアントでTortoiseSVNを使用していますが、
ローカルで作業コピーからコミットをかけようとすると
最後のコミットから変更/追加されたファイルはありません。
今回、TortoiseSVNがすることはありません
となり、コミットができません。

更新しようとすると「エラー リビジョンXはありません 」となります。

レポジトリをリストアした場合、チェックアウトし直すしかないのでしょうか。

A 回答 (1件)

>レポジトリをリストアした場合、チェックアウトし直すしかないのでしょうか。



そのようですね。
http://daipresents.com/2008/subversion15_svnsync …
の注意点とか。

svnsuncがどのタイミングで行われたか…が問題のような気もしますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
同じことやられてる方いたんですね

なんとか無理やり考えて以下の方法で復旧してみました。
少ないデータで試したので多量のデータでできるかわかりませんが…

1.バックアップ先のデータも事前にチェックアウトしておく。(A)
2.サーバのリポジトリをバックアップデータから同期して復旧させる
3.(A)を再配置して復旧したリポジトリを参照するようにする
4.ローカルの最新の作業コピー(B)をクスポートして(C)を作成する
5.(A)配下に(C)配下のファイルを上書きコピーする
6.(A)をコミットする

これで一応追加、更新分は反映されるかと思いますが、バックアップの
リビジョン前に存在していたが、バックアップのリビジョン後に削除されたものが
反映されないので5の前に以下を追加(削除ファイルが無ければやる必要ないですが)

(1) (B)と(A)でフォルダ比較をツールで行い、削除ファイルのリストを作成する
(2) 削除ファイルリストの頭にsvn delete を付加してdos上で実行

これで少ないデータですがコミットできることを確認できました。
ただ、(2)で消したファイルがコミット後のログに何故か削除で出力されないようですが
データは更新できたので、これでいこうかと思います。

お礼日時:2013/06/07 15:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!