Saltar al contenido

Sistemas de control de Versiones-IV: El asunto BitKeeper

abril 13, 2010

En medio de esta introducción a los sistemas de control de versiones, hacemos parada y fonda para tratar un caso de los mas importantes en el desarrollo de estos sistemas.

¿Por qué?  Bueno, BitKeeper tiene la suficiente importancia en nuestro mundo como para dedicarle un post entero a ello. Veremos el porqué.

Vamos así, a lo rápido. BitKeeper es una herramienta para el control de versiones desarrollada por la emprese BitMover. Durante un tiempo, se usó como sistema de control de versiones del código de muchos proyectos de software libre, pero sin duda el mas importante fue el del Kernel de Linux.

Empezó siendo usado por el proyecto PowerPC en torno a 1999. Luego, en febrero de 2002,el creador de Linux Linus Torvalds decidió que BitKeeper era «la mejor herramienta para el trabajo» (literalmente, «Best Tool For The Job»)y comenzó a utilizarlo para administrar el núcleo principal, un caso que recibió mucha atención en las comunidades de código abierto.

BitMover, la compañía detrás de BitKeeper, fue fundada por Larry McVoy (también desarrollador de Linux), que originalmente pensó en BitKeeper para que Linus trabajase algo mas cómodo. Desde que Linus comenzó a utilizar la herramienta, el ritmo de desarrollo del núcleo Linux fue incrementando, ya se podían delegar mas tareas y concentrarse en otros aspectos.

Peeeero, la decisión tomada en 2002 para el uso gratuito (ojo que «free» no es igual a «free» 😉 ) de esta herramienta para el desarrollo del núcleo Linux fue un tema polémico. El fundador del proyecto GNU, Richard Stallman, expresó su preocupación por la propiedad de las herramientas que se estaban usando en el proyecto mas mítico de los proyectos libres.

Un veterano en el desarrollo del Kernel, Alan Cox, se negó a usarlo argumentando en contra su licencia propietaria y defendiendo la idea de que usarlo suponía ceder cierto control a un desarrollo propietario. No había elección, ya que no existía un sistema de control de versiones distribuido openSource para competir con BitKeeper. En la práctica todo esto implicaba que cualquier persona que quisiese formar parte de los desarrollos solo podía hacerlo desde una aplicación no openSource 😦 .

En medio de estas reflexiones y debates, empezaron intentos de alcanzar una solución para todos. Por un lado, BitMover empezó a implementar pasarelas que permitían la interoperabilidad entre los servidores Linux BitKeeper (gestionada por Bitmover) y desarrolladores que utilizaban CVS y Subversion.
De otro lado, empezaban los procesos de ingeniería inversa para estudiar las características del sistema distribuido propietario y poder ofrecer una alternativa libre.

Así, a los tres años de uso de BitKeeper (abril de 2005), tras años de discusiones, debates, «flamewars» de correos electrónico y acusaciones de violación de licencia incluida, BitMover anunció que dejaría de ofrecer una versión de BitKeeper de forma gratuita a la comunidad, dando como razón los esfuerzos de Andrew Tridge y de la compañia OSDL por realizar procesos de ingenería inversa que violaban la licencia. Así se puso en marcha el proyecto Git.

Torvalds quería un sistema distribuido que pudiese usar como BitKeeper, pero ninguno de los sistemas libres disponibles satisfacía sus necesidades, en particular sus necesidades de rendimiento. En un e-mail que escribió el 7 de abril 2005 empezó a describir el primer prototipo. El tres de abril de 2005 empezaba oficialmente el desarrollo de Git.

El resto es ya la historia del mismo proyecto Git y de los sistemas de control de versiones distribuidos y libres…

¡Nos vemos pronto!

No comments yet

Deja un comentario