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 Edgy. Es un articulo meramente tecnico, enfocado a desarrolladores. Lo de siempre, si no te interesa puedes olvidar de leer lo que continua.
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 ficheros (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 ficheros 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 fichero de codigo. Cuando uno de ellos actualice ese fichero en el repositorio se queda marcado, de tal manera que cuando el otro intente subir al repositorio de codigo ya ve, que ese fichero ha sufrido una modificacion desde la ultima vez que el se actualizo, lo que le obliga, a traerse de nuevo ese fichero (con los cambios que haya realizado el primer programador), añadir los suyos y volver a subir el fichero. Sin un mecanismo de control de versiones, ese cambio se perderia, el primer desarrollador subiria el fichero y el segundo subiria su version. Esto para un fichero es controlable, pero cuando tienes miles de ficheros 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 jose
Ahora editamos el fichero:
sudo vi //var/lib/cvsd/cvsrepo/CVSROOT/config
Cambiamos “#SystemAuto=no” a “#SystemAuto=no”
Nota: si no te deja editar el fichero, copialo a otro sitio, luego eliminas el principal y vuelves a copiar este ya modificado.
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:jose@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 "ficheros 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 bailado
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. Pero tambien podrias instalar un cliente grafico como “CVSGui” con el comando:
$ apt-get install gcvs
Su interfaz es muy intuitiva, en Preferencias configuras el valor de la variable CVSROOT, y como mecanismo de autentificacion “pserver”. Despues harias un “login” desde el menu y ya podrias trabajar normalmente.
Mas informacion | instalar CVS
Guia de CVS
Tutorial de uso de CVS
Eclipse y CVS
Otro sistema de control de versiones, Subversion




Si quires postear un tutorial muy parecido sobre como montar un servidor de subversion (prototcolo que ha dejado muy atras a CVS) aquí tienes el enlace:
http :// etsiit.blogspot.com/2007/05/instalacin-y-configuracin-de-subversion.html
Gracias por este. Si algún día lo necesito sé donde buscarlo
La URL va troceada porque si no no me deja postear. Será que tiene filtrados los enlaces.
me interesa tu articulo, con tu permiso voy a colgarlo. La verdad que prefiero Subversion pero esto es el trabajo y tienes que “heredar” lo que ya existe. A ver si puedo ser un poco malvado y con tiempo, hago una migracion de CVS a subversion
Existe una errata, lo correcto sería:
Cambiamos “#SystemAuto=no” a “SystemAuto=no”
Por lo demás muy buen artículo.
muchas gracias por la correccion.
Hola, en realidad es SystemAuth, no SystemAuto.
Gracias por el tutorial!
Hola, segui paso a paso el tutorial y me encuentro con el sgte problema, al hacer
cvs -d :pserver:cvsoca@localhost:/var/lib/cvsd/cvsrepo login
me dá el sgte error
cvs login: authorization failed: server localhost rejected access to /var/lib/cvsd/cvsrepo for user cvsoca
Probé abriendo el pto 2401 desde el firestarter y creando el usuario cvsoca , asignandolo al grupo cvsd y dando permisos sobre la carpeta del repositorio y nada…
Alguna idea??
saludos.
Hola, despues de tres dias, peleandome con cvsd, descubri que en Jaunty hay que modificar el /etc/cvsd/cvsd.conf
//Linea original
Listen * 2401
//por esta
Listen 0.0.0.0 2401
Discusion original
http://ubuntuforums.org/showthread.p…62#post7213962
Hola gente me sale este error al correr… esto…
cvs -d :pserver:cvsoca@localhost:/var/lib/cvsd/cvsrepo login
cvs [login aborted]: unrecognized auth response from localhost: cvs [pserver aborted]: /cvsrepo: no such repository
alguna ayuda x ahi!
yo también seguí el tutorial paso a paso y me encontré con este error:
cvs [login aborted]: connect to localhost(127.0.0.1):2401 failed: Connection refused