Les autres ont souligné que Subversion et ses proches n'ont aucun problème à gérer les fichiers binaires (bien qu'ils ne soient pas aussi efficaces en termes d'espace que le texte). L'exigence de sauvegarde de la base de données est cependant plus intéressante, et je l'ai rencontré plus d'une fois.
Idéalement, je voudrais une représentation textuelle du diff entre deux versions d'une base de données (schéma et données). L'application d'un tel diff vous ferait passer d'une version à l'autre. Le moteur de contrôle de source pourrait simplement stocker cela avec chaque validation. Les migrations Rails sont un moyen astucieux de gérer les différences de schéma, mais je n'ai rien vu qui puisse gérer les différences complètes de schéma et de données dans un format texte simple.
À défaut, je suppose que vous pourriez enregistrer un vidage de base de données texte comme le type généré par la commande mysqldump
pour MySQL. L'algorithme diff de l'outil de contrôle de source ne le gérera probablement pas efficacement, mais il nécessitera probablement moins d'espace que l'archivage d'un fichier de base de données binaire opaque.