git indexe les fichiers par leurs somme de contrôle (leur nom sur le disque est leur somme de contrôle). Donc si un fichier ne change pas, sa somme de contrôle ne change pas, il n'est stocké qu'une seule fois sur le disque. S'il change, les deux versions sont stockées sur le disque.
Pour créer un diff, il suffit de regarder les deux commit, voir dans les arbres correspondants si le fichier a changé, et si oui, appeler la bonne vieille commande diff avec les deux fichiers à comparer.
Pour appliquer un diff, il suffit d'extraire la version voulue (a priori la plus récente), d'utiliser patch, et de stocker la nouvelle version créée.
Quant à savoir ce que c'est qu'un patch au sens rcs ou un système de fichier loopback (à tes souhaits)... Pas la moindre idée.
[^] # Re: git, un outil de bas niveau
Posté par Boa Treize (site web personnel) . En réponse à la dépêche Le développement du noyau continue autour de Git. Évalué à 4.
Pour créer un diff, il suffit de regarder les deux commit, voir dans les arbres correspondants si le fichier a changé, et si oui, appeler la bonne vieille commande diff avec les deux fichiers à comparer.
Pour appliquer un diff, il suffit d'extraire la version voulue (a priori la plus récente), d'utiliser patch, et de stocker la nouvelle version créée.
Quant à savoir ce que c'est qu'un patch au sens rcs ou un système de fichier loopback (à tes souhaits)... Pas la moindre idée.