CVS es un sistema de control de versiones concurrente. Era hasta hace poco el más utilizado en proyectos de software libre, está siendo rapidamente reemplazado por subversion por sus evitentes ventajas prácticas. En esta receta se explica cómo realizar las operaciones básicas con un repositorio CVS.

Crear un módulo

ToDo

Descargar un módulo

Esta es la operación más habitual y también una de las más simples:

Con pserver:

$ cvs -d:pserver:pepe@example.com:/var/cvs co -d anotherjob projects/pepejob

Con ssh:

$ export CVS_RSH=ssh
$ cvs -d:ext:pepe@example.com:/var/cvs co -d anotherjob projects/pepejob

Esto obtiene una copia de la versión HEAD del módulo pepejob. Crea un directorio anotherjob en el directorio actual.

Actualizar una copia local de un módulo

Suponiendo que haya nuevas versiones disponibles del módulo del ejemplo anterior, puedes actualizar tu copia a la última versión con:

anotherjob$ *cvs update*

Subir al repositorio cambios locales

Si eres tú el que desea subir al repositorio una nueva versión de los ficheros de ese módulo (que has modificado tú mismo), ejecuta esto:

anotherjob$ *cvs commit*

Es este caso se abrirá el editor de texto por defecto para que añadas un comentario referente a las modificaciones que estás subiendo.

Crear una rama

ToDo

Usar un repositorio CVS servido por un SSH que no está en el puerto por defecto.

Supongamos que el servidor ssh está en el puerto 22022 en lugar del 22. En este caso hay que hacer un pequeño “hack”. Crea un script, por ejemplo ~/bin/myssh.sh, y escribe en él lo siguiente:

#!/bin/bash
ssh -p 22022 $*

Dale permisos de ejecución y actualiza la variable de entorno CVS_RSH para usar tu script:

$ chmod 0700 ~/bin/myssh.sh
$ export CVS_RSH=~/bin/myssh.sh

Y ya puedes utilizar cvs de la forma habitual para el caso de ssh.

Un modo más elegante (menos chapuza)

Escribe un fichero ~/.ssh/config y añade algo como:

Host example
   Hostname example.com
   Port 22022

Referencias



blog comments powered by Disqus