2010-07-10 7 views
0

Je cherche la base de données Design (Relational - Model) utilisée par Subversion. Je travaille sur un projet qui devrait pouvoir fusionner, la version et toutes les autres opérations de subversion similaires.SVN Database Design

Est-ce que quelqu'un sait tout site qui décrit les tables de Subversion?

Merci d'avance!

Répondre

3

Jetez un oeil à this page, qui décrit les deux formats de base de données (Berkeley DB et FSFS).

La Subversion source code contient des informations sur la base de données dans le dossier subversion/libsvn_fs_base/notes - il y a quelques history, et un description et diagram du schéma.

Vous pouvez également afficher le code source lui-même. Par exemple, il contient du code relatif à la création d'une base de données BDB:

https://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/fs.c?view=markup

et il y a aussi le code source pour chaque table dans la base de données:

https://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/bdb/

Vous pouvez vider le contenu d'un table dans la base de données:

db4.8_dump YOUR_REPO/db/revisions # or 'changes', or 'locks', or... 
+0

Salut Richards, en fait je cherche comment les tables sont à l'intérieur du BerkeleyDB au lieu de la façon dont les données persistent SVN. Si je pouvais étudier la conception de la base de données Subversion (Tables et relations), pourrais-je avoir quelques idées pour améliorer mon travail. – CHAPa

+0

J'ai développé ma réponse avec des liens vers le code source de Subversion. Il y a des informations sur le schéma BDB ici. Cependant, vous devriez également regarder dans le format FSFS: il a été introduit pour surmonter les problèmes avec le format BDB (par exemple FSFS est plus rapide, prend moins d'espace disque, et est moins sujette à la corruption). FSFS est le format par défaut ces jours-ci. –