domingo, 14 de octubre de 2018

La Odisea y Git

Para mis trabajos de composición tipográfica y algunas de mis traducciones (sobre todo la de la Odisea) uso un software de control de versiones llamado Git. Es muy popular entre los programadores, pero para los que usamos texto plano en otros menesteres (en mi caso escribir, traducir o componer libros) puede resultar increíblemente útil —diría que hasta indispensable— además de que es muy sencillo de usar. ¿Qué hace Git, cuyo símbolo es un gato? Pues una cosa muy simple: sacar distintas instantáneas de una línea temporal. Podemos trabajar con varias líneas temporales paralelas o «ramas» simultáneamente, y fusionarlas cuando queramos. Cada instantánea contiene cualquier añadido, supresión, modificación, etc que se haya hecho a la versión anterior, de lo que Git nos informará detalladamente cada vez que le pidamos que compare dos o más textos. Las instantáneas las va almacenando Git en algo llamado «repositorio», que no es más que una carpeta donde se incluyen cuantos archivos y documentos queramos. De hecho, una instantánea concreta recoge el estado puntual en la línea de tiempo de nuestro repositorio, de todos sus archivos y subcarpetas. Cada vez que creamos una versión y la vemos digna del memorioso Git, cuyo símbolo es un gato, haremos entonces un «commit», que es como una miguita de pan en nuestro camino, y lo mandaremos al repositorio. Yo trabajo con un doble sistema de repositorios: uno local, para mis ordenadores de casa (e incluso el móvil) y otro remoto en el servicio gitlab.com, que a diferencia de github.com permite mantener repositorios privados sin coste alguno para los usuarios. Ambos repositorios, local y remoto, están siempre sincronizados. Es decir, que si termino un tramo de traducción, y quiero crear un «commit», abro la terminal y escribo:

git add .
git commit -m "Odiseo sigue con su parlamento y corrección de xx versos en Canto xx"
git push origin master 

El primer comando añade los cambios a la cabeza de la línea temporal. El segundo crea el «commit» con el nombre que se nos antoje (también podemos añadir comentarios y demás en cada «commit» o asignar etiquetas para «commits» especialmente memorables). El último comando envía el «commit» también al repositorio remoto («origin»), que está sincronizado en la rama principal o «master». Y así de sencillo y así sucesivamente siempre.

Bien. ¿Y por qué cuento todo esto? Pues porque necesitaba explicarlo antes para decir que hoy he revisado mi repositorio de la Odisea y resulta que ya he sobrepasado la homérica cifra de 3000 «commits». Nada despreciable, aunque muy lejos de los 783542 «commits» que tiene a fecha de hoy el núcleo Linux en sus sucesivas contribuciones y versiones. En cualquier caso, Homero no creo que precisara de Git. Él mismo era Git, cuyo símbolo es un gato.