Description
We want to be able to recover from database corruptions of any kind.
Current Implementation
SVN Implementation
svn uses 'svnadmin recover' to fix bdb backends. There is no parallel for fsfs backends because completed commit chunk files never change - they're ascii text. You can take a md5/sha1 and it will never change. Should a problem arise, there are various tools available including dump/restore of metadata, editing the dump files, comparing signatures of committed chunks, etc. Automated detection of corruption is as simple as keeping and checking md5/sha checksums of the chunk files and keeping copies of the chunk files.
Hg Implementation
Git Implementation
Git includes a fsck tool to help repair damage to a repository if it were to occur.
Monotone Implementation
Supported
Monotone's developers are quite paranoid about correctness, it has been the primary objective since the beginning.
Integrity of data is assured with SHA1 hashes, that are checked during every 'important' operation.
Monotone local repository is a SQLite database that can be freely inspected.
(to be continued - work in progress)