Fossil es un sistema de control de versiones, de igual forma que Git, pero con otra filosofía y muchas opciones más

Git se ha convertido en una herramienta de trabajo ampliamente utilizada. Es un sistema de control de versiones de archivos, que puede gestionar los aportes de muchas personas trabajando sobre los mismos archivos.
En el blog ya he tratado muchos artículos sobre esta herramienta creada por Linus Torvalds, pensada para ser utilizada en el desarrollo del kernel Linux pero ampliamente utilizada en muchos otros proyectos.
Pero acabo de enterarme de una alternativa creada por el desarrollador de SQLite que ofrece un sistema de control de versiones, pero muchas otras cosas de manera nativa como: seguimiento de errores, una wiki, un foro y documentación del proyecto.
El proyecto en cuestión se llama Fossil, y ofrece todo lo mencionado:
Fossil es un sistema de administración de configuración de software distribuido, simple y de alta confiabilidad con estas características avanzadas:
- Seguimiento de errores, wiki, foro y otas técnias integradas: Además de ser un software de control de versiones distribuidas de un arhivo o archivos como Git o Mercurial, Fossil también ofrece seguimiento de errores, wiki, forum, y notas técnicas
- Interfaz web integrada:- Fossil tiene una interfaz web integrada, configurable, extensible e intuitiva con una amplia variedad de páginas de información (ejemplos) que ofrecen información del desarrollo del proyecto. El propio sitio web de Fossil es una instancia de Fossil (valga la redundancia). Sus páginas son wikis o documentación incrustrada o (en el caso de la página de desargas) archivos que no entran en las versiones. Cuando clonas un proyecto en Fossil, desde uno de sus repositorios auto alojados, descargas más que únicamente el código fuente, descargas el sitio completo.
- Auto contenido: Fossil es un simple y único ejecutable. Para instalarlo, simplemente descarga un binario precompilado para GNU/Linux, Mac, o Windows y ponlo en tu $PATH. También puedes compilar el código fuente.
- Red sencilla: No se necesitan protocolos personalizados o puertos TCP. Fossil utiliza el conocido protocolo HTTP (o HTTPS o SSH) para las comunicaciones por red, así que funciona sin problemas destrás de firewalls, incluyendo proxies. El protocolo es eficiente en cuanto al ancho de banda hasta el punto que puede ser utilizado en lugares con poca cobertura de red o con redes de datos.
- Configuraciones simples del servidor: No es necesario un servidor central, pero si quieres puedes configurar uno. Fossil admite diferentes configuraciones de servidor incluyendo CGI, SCGI, o HTTP. También puedes configurar tu repositorio Fossil fácilmente para servir de réplica (o m»mirror») del contenido de GitHub.
- Sincronizado automático: Fossil admite el modo «autosync» que ayuda a que los proyectos sigan avanzando al reducir la cantidad de bifurcaciones y fusiones innecesarias que a menudo se asocian con proyectos distribuidos.
- Robusto y fiable: Fossil almacena el contenido utilizando un formato de archivo duradero en una base de datos SQLite que es fiable incluso cuando hay una caida de tensión o un colapso. Automáticamente de auto comprueba verificando que todos los aspectos del repositorio están a salvo respecto a un commit anterior.
- Libre y de código abierto: Está publicado pajo licencia 2-clause BSD license.
No he podido probarlo, pero he estado leyendo sobre el proyecto en su web y seguro que es una opción más que interesante para algunos proyectos.
Tiene unos comandos y flujo de trabajo muy similares a Git, por lo que empezar a trabajar con Fossil no debería ser muy rupturista. Cierto, que tiene otra filosofía y otras herramientas, que habrá que ir descubriendo poco a poco.
Estas serían las principales diferencias entre Git y Fossil. Es una tabla resumida. Tienes información más detallada en su web.
GIT | FOSSIL |
---|---|
Solo versiones de archivos | sistema de versiones, tickets, wiki, docs, notes, foro, UI, RBAC |
Extenso e ineficiente | Auto contenido y eficiente |
Almacén de datos de pila de archivos personalizado único | La base de datos más popular del mudo |
Se ejecuta de manera nativa solo en sistemas POSIX | Nativo en equipos de escritorio y plataformas de servidores |
Sistema de desarrollo estilo Bazar | Sistema de desarrollo estilo Catedral |
Diseñado para el desarrollo del kernel Linux | Diseñado para el desarrollo de la base de datos SQLite |
Muchos colaboradores | Colaboradores seleccionados |
Se enfoca en ramas individuales | Se enfoca en árboles de cambios completos |
Un check-out por repositorio | Muchos check-outs por repositorio |
Recuerda lo que debiste haber hecho | Recuerda lo que realmente hiciste |
Primero so los commits | Primero son las pruebas |
SHA-2 | SHA-3 |
Una cosa a destacar es su interfaz web intuitiva, que ofrece información interesante y con los desarrolladores pueden interactuar. Echa un vistazo a este ejemplo del propio Fossil.
Puedes seleccionar diversos hitos, viendo información sobre las diferencias. Navegar por los cambios aportados y ver de manera gráfica todo el proyecto.
Te invito a que eches un vistazo al proyecto y compruebes si te podría servir para ese proyecto que te estás trayendo entre manos… 🙂 Si es así utiliza los comentarios del blog para compartir tu experiencia.
No lo conocía… llevo todo el día procrastinando con él y me está gustando, creo que le voy a dar una oportunidad a ver qué tal me apaño con él. La UI tiene una estética mejorable, pero aún no he encontrado cómo se puede cambiar (que en la documentación dicen que se puede).
Hola!
Un placer leerte por aquí. Yo cuando tenga tiempo también me gustaría probarlo…
¿No tiene documentación? Porque en la web hay mucha información…
Saludos y me alegro que te guste…
igual echando un vistazo a sus «skins»
https://fossil-scm.org/home/dir?ci=tip&name=skins
Lo que más me gusta de Fossil es lo minimalista de sus requerimientos. Puedes instalarlo donde sea que puedas ejecutar un programa cgi-bin. De hecho es muy fácil usar el alojamiento web de Sourceforge para alojar todos tus repositorios Fossil en un único proyecto.