【SVN】database disk image is malformed 発生時の対応


概要

SVNクリーンアップを行った際などに下記エラーが発生した際の対処方法

次のパスを処理する際にクリーンアップに失敗しました。
C:\xxxxxx
sqlite[s11]: database disk image is malformed
Additional errors:
sqlite[s11]: database disk image is malformed

発生要因

・外付けSSDへのチェックアウト中にPCをスリーブモードにした。
・svn update 中に外付けSSDとPCとの物理的な接続が切れた。(USB差し込みが甘かった?)
・svn update 中にPCがブルースクリーンになった。

などなどある模様

環境

Windows10
TortoiseSVN 1.13.1

対応方法

1.
SQLite公式サイトからWindowsコマンドラインツールをダウンロードする。
https://www.sqlite.org/download.html

Precompiled Binaries for Windows
sqlite-tools-win32-x86-3340000.zip (投稿時点の最新版はこちら)

2.
ダウンロードしたファイルの中の「sqlite3.exe」を、エラーが発生する「.svnファイルがある階層」にコピーする。

3.
その階層でコマンドラインを実行して、下記コマンドを4つ入力する

cmd.exe
sqlite3 .svn/wc.db "pragma integrity_check"
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
sqlite3 .svn/wc.db "pragma integrity_check"

最後のコマンドを入力した後、コマンドラインに「ok」と表示されていればOK。

他の対処方法

手元の環境ではどれも効果がありませんでしたが、もし上記方法でも対応できなければ試してみてください。

https://qiita.com/nac731/items/897478db7fa3f17c72f4
https://qiita.com/tsunet111/items/2c21706fd67f5ecb047d
https://ugarailog.blogspot.com/2017/09/tortoisesvn.html
http://taichino.com/engineer-life/database/4123

この記事を見て直ったら LGTM よろしくです

( LGTM=直った数...?)