Una herramienta de control de versiones tiene un cierto potencial de adicción, ya que es difícil de dejar de usarlo cuando una vez se ha conocido sus ventajas. En este artículo queremos hablar qué ficheros conviene guardar en un control de versiones y cuando conviene no usarlo. “No usar un control de versiones” significa guardar los ficheros en el sistema de ficheros de sistema operativo, es decir en los directorios de toda la vida.

Describo en otro artículo lo que es un control de versiones. En este artículo asumo que el lector ya lo sabe.

En el artículo anteriormente mencionado defino las dos razones de usar un control de versiones, que son:

  1. Ayuda a que varios programadores pueden trabajar en paralelo.
  2. Permite mantener varias versiones de un mismo programa a la vez.

Una conclusión de esto es que no se usa un control de versiones si no se da al menos una de estas condiciones, ya que no vale la pena usar una herramienta adicional si no trae beneficio. No se pueden acceder ficheros bajo el control de versiones excepto con la misma herramienta y está puede tener problemas de compatibilidad con versiones nuevas del sistema operativo como cualquier otro programa. Tampoco es fácil añadir espacio cuando el repositorio ya ha llenado el disco duro entero. Una carpeta simple, por lo contrario, es fácilmente manejable en cualquier plataforma.

La consecuencia de no programar en paralelo es bastante obvia: un sólo programador no corre riesgo de no poder trabajar por culpa de otro. Mientras uno trabaja sólo es mucho más fácil guardar todos los ficheros en las carpetas habituales, aunque eso sí: organizando los ficheros para al menos teóricamente será fácil subirlos a un control de versiones. Nunca sabes si algún día habrá otro programador contigo.

O que habrá múltiples versiones. Mantener múltiples versiones es algo habitual en proyectos grandes. Mientras el cliente prueba una versión, los programadores ya desarrollan la próxima. Si es un software que al menos en principio cualquiera pueda descargar y usar, entonces conviene mantener el código bajo un control de versiones, ya que siempre habrá varias versiones en uso. El caso contrario es un software a medida.

Una vez entregado el software a medida al cliente funcionando, nadie se interesará por un estado intermedio durante el desarrollo. Hay una versión final y punto. Entonces se guarda esta última versión en carpetas del sistema operativo y se puede liberar el espacio en el control de versiones. Si el cliente un día quiere un cambio, se puede volver a subirlo – pero entonces a una herramienta de la última generación y no el control de versiones de hace diez años.

Si el cambio está terminado y aceptado por el cliente, entonces se vuelve a guardar la versión final en un directorio del sistema operativo. Si queremos guardar estas dos versiones, entonces podemos usar dos subcarpetas “versión 1” y “versión 2”. Personalmente prefiero usar la fecha, algo como “Versión 2010-06-01”. Así uno no se lía con los números de versiones y queda aún más claro cual es la más reciente.

En fin, guardar proyectos en carpetas simples en lugar de mantenerlos en un control de versiones puede ser una mejor solución para proyectos pequeños y con pocas versiones.

Finalmente quedan todavía dos puntos adicionales a subrayar:

  • Un control de versiones no reemplaza una copia de seguridad. Guardar su trabajo diario en un disco duro alternativo es importante para no perder datos en caso de averías.
  • Aunque el primer fin de un control de versiones es guardar las versiones de sus propios ficheros fuentes, puede convenir guardar bibliotecas externas con las fuentes, ya que una nueva versión de una biblioteca externa no está garantizada de funcionar con una versión antigua del programa. No es un error guardar todas las bibliotecas externas para cada proyecto por separado, aunque serán siempre las mismas bibliotecas. Simplemente piensa qué frustración puede ser sacar un proyecto viejo del armario y que este no compila directamente porque todavía toca buscar todas las bibliotecas por ahí y a saber con qué versión.

Por cierto, nombrar carpetas con fechas es una manera simple de organizar copias de seguridad del trabajo del día.

Referencias

Anuncios