En estos días me topé con un sistema de control de versiones distribuido que me pareció interesante, y una buena excusa para actualizar el blog de una buena vez
Como si no había ya unos cuantos sistemas de control de versiones, apareció otro más, de la mano de los creadores de SQLite. Lo interesante de este sistema es que aparte incluye una wiki, un sistema de tickets, un servidor web, y un blog. Todo en un sólo ejecutable autocontenido y compacto (alrededor de 1 Mb). Y es software libre!!!
Según el creador, el proyecto surgió a raíz de que no se encontraba conforme con ninguno de los sistemas de control de versiones existentes para lo que él quería realizar. Así que creó a Fossil.
Si lo quieren ver en acción, Tanto la página de SQLite (http://www.sqlite.org/), como la de Fossil misma (http://www.fossil-scm.org/) , son el programa en funcionamiento. Pero ejecutarlo en sus propios sistemas no cuesta nada. Hay ejecutables precompilados para Linux, Mac, Windows y OpenBSD, además de la posibilidad de compilarlo desde los fuentes mismos.
La instalación es realmente sencilla. Simplemente ejecuten el programa. Si lo desean, pueden agregarlo al PATH, para que pueda ser accedido como cualquier otro programa del sistema, pero no es necesario. Incluso puede funcionar en un “chroot jail” perfectamente.
Todo tanto la configuración como el repositorio quedan dentro de un solo archivo, que es una base de datos SQLite. De hecho, no es necesario que este archivo exista en el mismo directorio que el proyecto que estamos versionando.
La configuración puede ser realizada tanto desde una línea de comandos como utilizando la interfaz web. Esto último es tan simple como escribir en una terminal
fossil ui <nombre-repositorio>
Esto automáticamente lanzará una ventana del navegador con la página de configuración del sistema. En caso de que no funcione debido a una configuración inusual, igual se puede alterar el comportamiento desde la terminal, cambiando el nombre del browser por defecto, y luego continuando normalmente.
Para los que usan Git, es muy simple migrar a Fossil (y viceversa, si se arrepienten). Simplemente con ejecutar
git fast-export --all | fossil import --git new-repo.fossil
desde una terminal, han conseguido migrar el proyecto a Fossil.
Los comandos para trabajar son los usuales de un DVCS.
fossil new <nombre-repositorio> fossil clone <URL> <nombre-repositorio-local> fossil add <nombre-de-archivo> fossil push <URL> fossil pull <URL> fossil merge <identificador>
Y hay otros más que están mencionados en la documentación (http://www.fossil-scm.org/index.html/doc/trunk/www/quickstart.wiki).
Si quieren un hosting Fossil en donde ubicar su proyecto, pueden recurrir a http://chiselapp.com/
El aspecto del sitio web ofrecido por Fossil es totalmente configuralble desde la interfaz web. Si bien el aspecto ofrecido por defecto no es lo más bonito del mundo, sí es funcional y prolijo.
Luego probarlo un poco, saqué las siguientes conclusiones
- Simple en todo sentido. Tampoco es trivial. Pero no abruma al usuario con multitudo de términos y opciones variopintos.
- Cómodo. Está todo en un solo ejecutable. No hay que agregar paquetes, extensiones, módulos ni nada que se le parezca.
- Está en inglés solamente. Le falta internacionalización, supongo que para reducir el tamaño del ejecutable.
- La documentación no está muy desarrollada. Faltan tutoriales, manuales, o cosas por el estilo. Inclusive la comunidad aún es pequeña. Pero lo que está en el sitio oficial alcanza perfectamente para comenzar a usar el sistema. Por otro lado, si tienen dudas y se manejan con el inglés, el soporte lo reciben directamente de los creadores!!
- Supongo que los que están acostumbrados a otros vcs’s van a sentir que es medio tosco o le faltan características. Quizás con el tiempo aparezcan extensiones, pero es fácil programar las propias, ya que el formato del repositorio está disponible, y las consultas son en SQL!
- Excelente para un equipo de trabajo pequeño. Se puede levantar un servidor instantáneamente, y tener un sistema de control de versiones distribuido con todos los chiches que se estilan ahora. Luego es fácil escalar si el proyecto adquiere grandes dimensiones.
Habrá que ver qué le depara el futuro, pero creo que es una opción más que interesante para tener en cuenta.


