CVS: primeros pasos

Hay quien dice que el uso de un servidor de versiones cuando el número de desarrolladores tiende a uno es injustificado, es posible que tengan razón pero llevo algunos años con la doble tarea -programar y versionar- y creo adecuado delegar responsabilidades en algo más fiable que yo.

Así que he tomado la decisión de probar CVS. Antes de ir corriendo a por unos algodones para los oidos intentaré explicar el motivo de usar estas siglas y no otras. Lo primero que se me ocurre es que OpenBSD lo trae de serie. ¡Correcto! la máquina que versionará mi código fuente es un pez globo. Entiendo que pueda parecer demasiado cómodo, pero para no haber usado nunca un sistema de control de versiones y poder evaluar la utilidad del mismo es más que suficiente. A diferencia de casi cualquier otro software servidor, no ha sido doloroso ponerlo en funcionamiento, tres sencillas órdenes. Primero creamos el directorio donde irán nuestros módulos (proyectos), lo acomodamos con permisos generosos e iniciamos el repositorio:
# mkdir /home/cvs
# chown -R cvs:cvs /home/cvs
# cvs -d /home/cvs init
Del lado del cliente el asunto tampoco se complica en exceso siguiendo una cierta lógica. Las variables de sesión son indispensables para un uso correcto así que primero exportamos el directorio de trabajo del servidor y luego obligamos a CVS a conectrase mediante ssh:
# export CVSROOT=:ext:cvs@servidor:/home/cvs/
# export CVS_RSH=/usr/bin/ssh
Ahora tendríamos que hacer el commit inicial del código fuente, base del proyecto sobre el que trabajaremos, para ello y dentro del directorio donde tengamos el código haremos:
# cvs import -m "Commit Inicial" proyecto1 cvs start
Automáticamente se conecta a cvs@servidor y sube a /home/cvs/proyecto1/ la primera revisión de código fuente. Una vez hecho ésto debemos borrar (o cambiar de ubicación) el fuente del lado cliente para bajar la versión ya versionada -valga la redundancia- que acabamos de subir:
# cvs co proyecto1
Sencillo pero algo lioso, a partir de aquí ya podemos editar y trabajar en cliente para commitear los cambios sin temor:
# cvs ci proyecto1
Log message unchanged or not specified
Checking in cake/app/app_controller.php;
/home/cvs/cake/app/app_controller.php,v  <--  app_controller.php
new revision: 1.2; previous revision: 1.1
done
#
Referencias:
sysadmin openbsd

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.