[Py-MAD] Mercurial y GIT

piranna at gmail.com piranna at gmail.com
Fri Mar 1 14:48:26 CET 2013


> A ver, yo no soy muy espabilao ni tengo casi experiencia en git, pero creo
> que una cosa es que un commit suponga una foto de todo el árbol de ficheros
> y otra que sea una copia. Si esto fuera así el tamaño de todos los
> repositorios de git creados alguna vez en la historia ocuparían 100 pársecs
> cúbicos en discos duros (por poner una cantidad de volumen a ojo). Yo pensé
> que guardaba diferenciales (deltas).

Internamente no se si hara compresion usando deltas, pero hasta donde
yo se, no lo hace, o al menos no en los objetos descomprimidos (en Git
in objeto es cualquier elemento, ya sea un archivo, un directorio o lo
que sea, y cuando la base de datos es muy grande hace un backup y lo
comprime). Lo que si que hace es deltas de directorios, teniendo cada
commit solo una copia de los archivos modificados. Vamos, que
internamente Git y TimeMachine funcionan igual (y TimeMachine me
encantaba :-D ).


> Y creo que cada commit tiene un ID de
> 40 caracteres, no sé si es lo que comentas con ID de revisión.
>
No, me referia a lo que tiene SVN y hg de "revision 530" o asi, que
cada vez que haces un commit se incrementa en uno. En Git son hashes
de todo lo que tiene ese commit (MD5 si no me equivoco), asi que
realmente no hay ningun orden implicito y todos los commits son
independientes y "autonomos" (igual que los parches, solo que con
archivos enteros con lo que hay menos lio al aplicarlos), y despues
tienes las ramas que actuan como indices diciendo que commit va
despues de cual otro pero de forma totalmente aislada de los propios
commits.


-- 
"Si quieres viajar alrededor del mundo y ser invitado a hablar en un
monton de sitios diferentes, simplemente escribe un sistema operativo
Unix."
– Linus Tordvals, creador del sistema operativo Linux


More information about the Madrid mailing list