Git está de aniversario, el sistema de control de versiones distribuido,creado por Torvalds para el desarrollo del kernel cumple 10 años y para celebrarlo en Linux.com le han hecho una entrevista en la que Linus cuenta como surgió el proyecto y su impacto en el desarrollo del software.
Inicialmente Git surgió como un reemplazo de Bitkeeper, un sistema de control de versiones con licencia propietaria que algunos desarrolladores de Linux utilizaban de forma gratuita (otros como Alan Cox se negaron por cuestiones éticas), con la condición de que estos no desarrollaran una herramienta similar que les pudiera hacer la competencia.
Realmente nunca quise hacer un sistema de administración de código fuente (SCM) y sentía que era casi lo menos interesante en el mundo de la computación (con la posible excepción de las bases de datos ;^), y odiaba todo lo de SCM con pasión. Pero entonces BitKeeper llegó y realmente cambió la manera en que yo veía control de código fuente. BK conseguía hacer la mayoría de las cosas bien, y tener una copia local del repositorio y distribuido fusionando fue una gran cosa
La decisión de Andrew Tridgell de hacer ingeniería inversa de Bitkeeper provocó que el enfaldo del CEO de esta compañía (Larry McVoy) dejando a partir de 2005 de proporcionar una versión gratis a la comunidad. En palabras de Linus:
…Ayudaba al desarrollo del kernel, pero tenía todavía puntos débiles
Que luego llegaron a un punto crítico cuando Tridge ( Andrew Tridgell) comenzó la ingeniería inversa del (bastante simple) protocolo BK, que estaba en contra de las reglas de uso de BK. Pasé un par de semanas (meses? se sentia de esa manera) tratando de mediar entre Tridge y Larry McVoy, pero al final estaba claro que no estaba funcionando. Así que en algún momento decidí que no puedo seguir usando BK pero realmente tampoco quiero volver a los viejos tiempos pre-BK…
….acabé decidiendo escribir mi propio SMC.
Contra lo que podamos pensar no le llevó demasiado tiempo escribir el código:
En realidad tu puedes verlo si echas un vistazo en git source code repository, excepto para el primer día o así. El trabajo era mayormente durante el día, pero hay unas pocas entradas a media noche y un par a las dos de mañana.
El truco no era tanto la codificación sino como se organizaban los datos…llevo unos diez días o así.
Y nos habla de las claves de porque Git, ha sido tan ampliamente adoptado:
Incluso aunque la gente no se diera cuenta de como importante era la parte de «distribuido», una vez que ellos descubrieron que permite hacer copias de seguridad de forma fácil y fiable, y permite a la gente hacer test en sus propios repositorios sin tener necesidad de preocuparse sobre las políticas de acceso de escritura a algún repositorio central, ellos nunca vuelven atrás.
También tuvo unas palabras para GitHub, un servicio que acerco el desarrollo de software a las masas (lo democratizó por así decirlo) basado en Git y que cuenta con millones de usuarios en todo el mundo y en donde se alojan innumerables proyectos de software libre.
Github es un servicio de hosting excelente. No tengo nada contra el, en absoluto. Ahora, las quejas que he recibido es que GitHub como plataforma de desarrollo (commits, pull requests, seguimiento de asuntos, etc..) no trabaja muy bien. No es ni de lejos indicado para algo como el kernel. Es demasiado limitado
Esta extensa entrevista realizada por Jennifer Cloer, la podéis leer sin resúmenes de ningún tipo y en versión original (es decir sin traducciones mas o menos deficientes por mi parte), en Linux.Com.
A propósito…en esta otra página encontraréis una bonita infografía, que nos muestra la evolución de Git en estos 10 últimos años.
Imagen | Atlasian
La lei en inglés y me sorprendió cómo en un fin de semana, el tio va y escribe el código de Git!!
joer… y yo sería incapaz de hacer un simple «hello world» en bash!!! 🙁
gran herramienta que ha revolucionado muchos aspectos del software, y facilitado el hecho de ser colaborativo.
Salud!!
Haz «un man git» y echale un vistazo a la definición:
«the stupid content tracker»
Eso es muy de Linus también xD
Esto del versionamiento es una cosa maravillosa para los desarrolladores, yo hasta hace unos meses que lo utilizo y me ha ayudado mucho a tener control sobre los cambios que hago, además de tener un respaldo en la nube por si se arruina mi computadora (toco madera jaja).