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


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)

VersionControl/DatabaseRecovery (last edited 2022-10-07T01:47:23+0000 by KubilayKocak)