Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

Instalar un servidor de CVS en Ubuntu

Entre mis nuevas tareas tengo la de administrar un servidor CVS, hacia años que no lo administraba, asi que he vuelto a recordar unas pequeñas nociones de control de versiones. Aqui hablare de como instalar CVS en Ubuntu Gutsy. Es un articulo meramente tecnico, enfocado a desarrolladores.

El significado de CVS como comenta la wikipedia, es el siguiente:
El Concurrent Versions System (CVS), también conocido como Concurrent Version System o Concurrent Versioning System, es una aplicación informática que implementa un sistema de control de versiones: mantiene el registro de todo el trabajo y los cambios en los archivos (código fuente principalmente) que forman un proyecto (de programa) y permite que distintos desarrolladores (potencialmente situados a gran distancia) colaboren. CVS se ha hecho popular en el mundo del software libre. Sus desarrolladores difunden el sistema bajo la licencia GPL.

Basicamente se utiliza en el desarrollo de un proyecto informatico para llevar un control de los archivos del codigo y evitar por ejemplo que el codigo que escribe un usuario sea “machacado” con el codigo de otro usuario. Ademas con un sistema de control de versiones, el programador siempre puede disponer de la ultima version del codigo lo que ayuda a continuar con el desarrollo del proyecto.

Te pondre un ejemplo de para que sirve todo esto.

Imagina dos programadores que estan trabajando en el mismo proyecto, y casualmente ambos estan modificando el mismo archivo de codigo. Cuando uno de ellos actualice ese archivo en el repositorio se queda marcado, de tal manera que cuando el otro intente subir al repositorio de codigo ya ve, que ese archivo ha sufrido una modificacion desde la ultima vez que el se actualizo, lo que le obliga, a traerse de nuevo ese archivo (con los cambios que haya realizado el primer programador), añadir los suyos y volver a subir el archivo. Sin un mecanismo de control de versiones, ese cambio se perderia, el primer desarrollador subiria el archivo y el segundo subiria su version. Esto para un archivo es controlable, pero cuando tienes miles de archivos y miles de lineas de codigo significa un desastre total. Por eso el control de versiones es necesario.

Para instalar el servidor y el cliente cvs ejecutamos:

$ sudo apt-get install cvs cvsd

En un momento determinado nos pedira la ruta para el repositorio, pon por ejemplo /cvsrepo. Este es el directorio a partir del cual se ira colgando todos aquellos modulos/proyectos que administremos con el CVS.
Este directorio lo vamos a definir a partir de /var/lib/cvsd, asi que realmente el path completo seria:
/var/lib/cvsd/cvsrepo

Ejecutamos las siguientes secuencias de comandos:

$ sudo cvsd-buildroot /var/lib/cvsd

Si la carpeta cvsrepo no existe, la creamos

$ cd /var/lib/cvsd
$ sudo mkdir cvsrepo

Le damos permisos sobre la carpeta al usuario cvsd

$ sudo chown -R cvsd:cvsd cvsrepo

Inicializamos el repositorio

$ sudo cvs -d /var/lib/cvsd/cvsrepo init

creamos un usuario cvs y le damos una password.

$ sudo cvsd-passwd /var/lib/cvsd/cvsrepo username 

por ejemplo:

sudo cvsd-passwd /var/lib/cvsd/cvsrepo j4nusx

Ahora editamos el archivo:

sudo emacs /var/lib/cvsd/cvsrepo/CVSROOT/config

Cambiamos “#SystemAuto=no” a “SystemAuto=no”

Ya tenemos todo funcionando. Para comprobar que accedemos:

cvs -d :pserver:username@localhost:/cvsrepo login
cvs -d :pserver:username@localhost:/cvsrepo checkout .

Por ejemplo:

cvs -d :pserver:j4nusx@localhost:/cvsrepo login

Seria adecuado exportar la variable CVSROOT del siguiente modo:

export CVSROOT=:pserver:jose@localhost:/cvsrepo

o el valor que fuera, de esta manera ya no necesitariamos especificarla cada vez que fueramos a usar un comando “cvs”.

Ahora podriamos logarnos con:

cvs login

y por ejemplo colocarnos en la carpeta (dentro) de un proyecto que quisieramos subir al CVS y ejecutar:

cvs import -m "archivos iniciales" MiProyecto HEAD MAIN

Si te sale el error:

/cvsroot: no such repository

es que has especificado mal la ruta del repositorio. deberia ser /cvsrepo o la que pongas, pero asegurate de que no te haya fallado
alguna letra. En caso de que lo hayas definido mal, No lo elimines con apt-get remove cvsd. Pues a la hora de volver a instalarlo
mantendria la configuracion anterior. tendrias que ejecutar:

apt-get remove --purge cvsd

e instalarlo de nuevo
o mejor aun,

dpkg-reconfigure cvsd

que nos permite reconfigurar de nuevo cvs server (cvsd) e indicar ahora si la ruta adecuada para el repositorio (/cvsrepo, /cvsroot, /repo, o el que quieras usar).

Como clientes de CVS yo o utilizo “cvs” desde la linea de comandos, o Eclipse.

gondavid55

December 20, 2007 @ 3:59 pm

Muy útil el post, gracias a ti me he configurado el servidor de CVS en un plis plas y ya lo tengo funcionando con Eclipse ;)

dario

March 12, 2008 @ 7:31 pm

El mismo post se encuentra en otro blog!!!
http://ubuntulife.wordpress.com/2007/05/28/instalar-un-servidor-de-cvs-en-ubuntu/
quien robó a quien?

RSS feed para comentarios en esta entrada · TrackBack URI

Comenta