lunes, noviembre 10, 2014

SRC: Control de versiones para proyectos de un solo archivo

Tiempo atrás consulté con mis amigos cual sería la forma adecuada de mantener el histórico de versiones de distintos proyectos que están conformados por un único archivo de código fuente; o alternativamente, si alguno conocía un sistema de control de versiones tal como subversion, mercurial o git, que permitiera mantener esa información sin tener que crear todo el proyecto en un nuevo directorio y sin el overhead de trazar cambios en jerarquías de carpetas y similares. La idea es sencilla: muchas veces hago scripts sueltos que no merecen estar alojados en un repositorio de código particular -están todos juntos en un directorio “scripts”-, pero de los que me interesa mantener un historial de cambios y revisiones.

Tomás me recomendó GistBox, que parece bastante piola puesto que en cierta forma está destinado a mantener esa “biblioteca” de código variado que uno va acumulando con el tiempo. Además los Gists siguen siendo repositorios git, por lo cual tienen todas las ventajas de un control de versiones. Pero aquí ya uno depende un poco de los servicios en la nube y además sigue siendo necesario mantener los archivos fuente en directorios aparte.

Salvando GistBox, hasta el momento no había encontrado ningún software que realice tal tarea, e incluso estuve tentado a comenzar un proyecto propio para tal fin.

Sin embargo, recientemente di con un post de Eric Raymond en el cual menciona la creación de un nuevo proyecto denominado SRC o “Simple Revision Control”, basado en RCS y definido como “Revision control with a modern UI for single-file solo projects kept possibly more than one to a directory”. En palabras sencillas, justo lo que estoy buscando.

Según el sitio web del proyecto -que al involucrar múltiples archivos, está mantenido en git, pun intended!-, Simple Revision Control es:
RCS recargado -un pequeño y cómodo sistema de control de versiones para proyectos de único archivo, único desarrollador, tal como todos esos pequeños scripts en el directorio ~/bin. Cuenta con operación libre de bloqueo, una interfaz de usuario limpia y moderna similar a la de subversion, documentación integrada, y los archivos de historia son archivos sencillos de RCS.
A primera vista tiene tres ventajas: a) cumple con lo que yo había solicitado; b) está desarrollado en python; y c) por el propio autor de “The Art of UNIX Programming”. Más no se puede pedir.

Y mientras estaba leyendo el artículo, en los comentarios aportan otra utilidad similar (que también desconocía): Zit, the git-based single file content tracker. Por ahora voy a probar SRC y ver si se ajusta a mi forma de trabajo. En un tiempo les comento que tal fue.

3 comentarios:

Tomas dijo...

Yo creo que lo mas frustrante es saber que hay un software que hace lo que uno esta buscando, porque es algo comun y no tan raro, pero no lo buscamos de la forma correcta :/, y cuando te encontras con un post, ves que no solo hay uno, sino 2, o mas alternativas.

Mauro Meloni dijo...

Totalmente, Tomás. Pero debo mencionar que dediqué varias búsquedas a hallar un proyecto como este: "single-file source control", "small project repository", y otras consultas sumamente variadas... con resultado nulo, como puede apreciarse.

Hay que considerar que el proyecto SRC, surgido precisamente de la necesidad de su autor y que, en función de su descripción, es quizá el que mejor coincidiría con las búsquedas efectuadas, tiene apenas una semana de vida. Y el otro proyecto, Zit, si bien es bastante antiguo (2009), sólo se menciona en su propio repositorio, no está documentado ni tiene sitio web propio, por lo cual la probabilidad de encontrarlo resulta bastante baja.

Pero efectivamente, debo replantearme la forma en que expresaba "mi necesidad de información" puesto que lo hallado ahora no fue a partir de una búsqueda sino de pura casualidad, leyendo los feeds en el lector de RSS, je.

Tomas dijo...

Murphy al palo: "Cuando dejes de buscar lo que sea que estes buscando, lo encontraras mientras buscas otra cosa".