Ben en fait c'est surtout, je crois (mais me trompe peut-être), qu'il utilise aussi des snapshots pour stocker les modifs et non des changesets (bzr utilise aussi des snapshots, hg des changesets) ce qui doit simplifier un peu les choses.
Non, tu te trompes. Ils font tous pareils, ils stockent un snapshot de repo à un instant donné. Après, par défaut git n'optimise rien (il stocke une nouvelle copie de tous les fichiers modifiés), mais lorsqu'on repack il va construire un paquet de delta pour optimiser la taille.
Au contraire hg va directement construire des deltas (plus simples que ceux de git après repack) tout en faisant attention à limiter la taille totale: si la version de base + les deltas sont plus gros que deux fois le texte, alors il stocke une version entière, il peut donc toujours récuperer la version en O(taille du texte), la complexité est bornée !
Mais tout ça c'est des optimisations de format de stockage, en pratique on pourrait utiliser le format de git pour hg et vice-versa.
[^] # Re: Mercurial
Posté par ribwund . En réponse au journal des migrations de systèmes de sources. Évalué à 2.
Non, tu te trompes. Ils font tous pareils, ils stockent un snapshot de repo à un instant donné. Après, par défaut git n'optimise rien (il stocke une nouvelle copie de tous les fichiers modifiés), mais lorsqu'on repack il va construire un paquet de delta pour optimiser la taille.
Au contraire hg va directement construire des deltas (plus simples que ceux de git après repack) tout en faisant attention à limiter la taille totale: si la version de base + les deltas sont plus gros que deux fois le texte, alors il stocke une version entière, il peut donc toujours récuperer la version en O(taille du texte), la complexité est bornée !
Mais tout ça c'est des optimisations de format de stockage, en pratique on pourrait utiliser le format de git pour hg et vice-versa.