J'ai lu le livre de subversion et il est clair pour moi que la subversion ne pas stocker des fichiers, mais uniquement des deltas afin de minimiser l'espace disque. Subversion a également fait de même avec les fichiers binaires (ce utilisé pour être un énorme faiblesse de CVS).
Cependant je ne comprends pas le mécanisme exact. Quand je commets un fichier de ce qui se passe?
- La Subversion ne stocke que les diff (et a déjà l'ancienne version)
- Subversion supprime la version précédente, enregistre le nouveau fichier intact et crée une inversion diff afin de "re-créer" l'ancienne version si nécessaire.
- Autre chose que je n'ai pas pensé.
Le premier cas semble le plus logique. Toutefois, cela soulève une autre question. Si j'ai dans un dépôt subversion, un fichier avec 1000 s'engage et un nouveau développeur récupère une copie propre, puis subversion aurait pour récupérer la version d'origine (importation initiale) et d'appliquer 1000 diff sur ce avant de retourner le résultat. Est-ce correct? Est-il une sorte de mise en cache pour les fichiers de la dernière version est conservée ainsi?
Fondamentalement, où puis-je trouver des informations sur le dépôt svn internes?
Mise à jour: Apparemment le backend de subversion joue un grand rôle dans cela. À l'époque ou de l'écriture FSFS utilise l'option 1, tandis que BDB utilise l'option 2. Grâce msemack!