svn cleanup: sqlite: database disk image is malformed

Solution 1:

First, open command/terminal at repository root (folder which has .svn as child folder):

cd /path/to/repository

Download sqlite3 and put executable sqlite3 at root of folder.

You do an integrity check on the sqlite database that keeps track of the repository (/path/to/repository/.svn/wc.db):

sqlite3 .svn/wc.db "pragma integrity_check"

That should report some errors.

Then you might be able to clean them up by doing:

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"

If there are still errors after that, you still got the option to check out a fresh copy of the repository to a temporary folder and copy the .svn folder from the fresh copy to the old one. Then the old copy should work again and you can delete the temporary folder.

Solution 2:

Integrity check

sqlite3 .svn/wc.db "pragma integrity_check"

Clean up

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"

Alternatively

You may be able to dump the contents of the database that can be read to a backup file, then slurp it back into an new database file:

sqlite3 .svn/wc.db

sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit

mv .svn/wc.db .svn/wc-corrupt.db
sqlite3 .svn/wc.db

sqlite> .read dump_all.sql
sqlite> .exit

Solution 3:

The SVN cleanup didn't work. The SVN folder on my local system got corrupted. So I just deleted the folder, recreated a new one, and updated from SVN. That solved the problem!