CvsPrimerosPasos

Estos son los primeros pasos para iniciar un proyecto en CVS:

Enlaces #

Crear un repositorio #

En primer lugar es necesario crear un repositorio donde se van a guardar las versiones diferentes: Esto puede hacerse creando el directorio directamente,
cesar@bender:~> mkdir cvsroot/
cesar@bender:~> mkdir cvsroot/CVSROOT
o bien se puede hacer con un comando CVS:
cesar@bender:~> cvs -d /home/cesar/cvsroot init
En este caso hemos creado un repositorio en la máquina local bender, que funcionaría como servidor. Por otro lado, en zylk.net el repositorio de control de versiones CVS se encuentra en kastor.zylk.net y nuestras máquinas funcionan como clientes. El repositorio es texto plano con lo que se puede llevar a cualquier otra máquina sin problemas.

Definir la ubicación (PATH) del repositorio #

Para que la shell conozca la ubicación del repositorio (el de kastor o el de bender) debemos cargar la variable de entorno correspondiente. Editamos el fichero .bashrc si nuestra shell es bash y definimos la variable de entorno CVSROOT. Para el caso del repositorio en el servidor kastor.zylk.net.
cesar@bender:~> vim .bashrc
export CVSROOT="ext:cesar@kastor.zylk.net:/data/cvsroot/"
export CVS_RSH="ssh"
export CVS_EDITOR="vim"
Ejecutamos el fichero .bashrc para que se cargue la variable de entorno,
cesar@bender:~> . .bashrc
Los requisitos previos de conexión son por lo tanto un cliente de CVS y de openssh o similar, y debemos tener una cuenta de usuario en la máquina que funciona como servidor. La autentificación será mediante la contraseña de usuario. Por cierto, las máquinas y directorios especificados son ficticios :-)

Importar un proyecto #

Normalmente, al empezar un proyecto se tiene un directorio base en el que trabajas que quieres introducir/importar en el CVS, digamos /home/$USER/zylk/olatxu

Antes de hacer nada, por si acaso:

cesar@bender:~> cd ~/zylk
cesar@bender:~/zylk> tar -czvf olatxu.tgz olatxu/
Primero movemos el directorio a otro,
cesar@bender:~/zylk> mv olatxu dummy
cesar@bender:~/zylk> cd dummy
cesar@bender:~/zylk/dummy> cvs import -m "El proyecto olatxu" zylk/olatxu zylk beta
Algunos comentarios:
  • Lo que hace import es importar los archivos recursivamente desde el directorio actual y ponerlos en el CVS
  • La opcion -m te permite comentar el proyecto que vas a iniciar. Si no escribes nada te abrirá tu editor por defecto $EDITOR o $CVS_EDITOR y te pedirá un comentario.
  • zylk/olatxu es el path relativo al $CVSROOT donde está alojado el código guardado. Es decir, guardamos el código en kastor.zylk.net:/data/cvsroot/zylk/olatxu
  • zylk es un vendor tag
  • beta es un release tag
Ya tenemos proyecto. Lo que necesitamos es verificar que ha funcionado y para eso vamos a sacar una copia del repositorio.

Crear una copia local del proyecto #

cesar@bender:~/zylk/dummy> cd ..
cesar@bender:~/zylk> cd ..
cesar@bender:~> cvs checkout zylk/olatxu
Esto te crea una copia en zylk/olatxu. Miramos si todo es correcto.
cesar@bender:~> cd zylk
cesar@bender:~/zylk> diff -rq olatxu dummy
Only in olatxu: CVS
.
.
Lo cual no debe dar diferencias en los archivos de código. En este momento podemos borrar la copia inicial dummy.
cesar@bender:~/zylk> rm -rf dummy
Y comenzamos a trabajar en nuestro directorio original $HOME/zylk/olatxu

Comandos básicos #

  • El comando status: La salida del comando muestra el estado de todos los archivos por debajo del directorio en el que te encuentras.
$ cvs status
También puedes hacer:
$ cvs status documentation.tex
$ cvs status|grep "Status"
Un alias bastante útil es:
$ alias cvstat="cvs status 2>&1 | egrep '(\?|File:)' | grep -v Up-to-date"
  • El comando log: Proporciona los comentarios de una versión. Los diferentes logs de los archivos en el CVS. Los comentarios en la opcion -m "xxxxxx" en las diferentes revisiones.
$ cvs log <file>
  • El comando diff: Permite obtener las diferencias entre versiones. El primer comando muestra las diferencias del archivo con la version del repositorio. El segundo comando te muestra las diferencias entre las versiones 1.1 y 1.3 del repositorio.
$ cvs diff <file>
$ cvs diff -r1.1 -r1.3 <file>
  • El comando update: El comando update compara la versión presente en tu copia local con la del repositorio y recoge los cambios. Al comenzar a trabajar es lo primero que debe hacerse, un update con los posibles cambios que ha hecho tu equipo. Cuando has hecho tus cambios en tus archivos locales debes hacer update para que el repositorio tenga cuenta de estos cambios. Los cambios no serán permanentes hasta que no hagas commit.
$ cvs update <file>
  • El comando commit: Guarda una versión en el repositorio.
$ cvs commit <file>
  • El comando checkout: Hace una copia de un archivo del repositorio. En el segundo caso hace la copia de la version 1.1.
$ cvs checkout <file>
$ cvs checkout -r 1.1 <file>
  • El comando add: Añade un archivo nuevo al repositorio. Después de hacer un add hay que hacer un commit.
$ cvs -m "New module for... " add <file>
  • El comando remove: Borra archivos del repositorio.
$ cvs remove <file>

Ignorar archivos en un directorio #

Crear el archivo .cvsignore
$ vim .cvsignore
Makefile
Global.py

Mandar un email tras un commit #

Editar el archivo loginfo:
$ vim $CVSROOT/CVSROOT/loginfo
de modo que,
DEFAULT echo %{sVv} at `date` | /usr/bin/Mail -s "[z-commits]" <email>
Promedio (0 Votos)
Comentarios