oeee oe oeee Linux mola y es mazo fácil

Guías rápidas de sistemas - Pello Xabier Altadill Izura - Número 005
pello@pello.info
  CVS  

Ver:

www.cvshome.org


O como manejar CVS (Concurrent Versions System) para organizar nuestro código.

CVS es un sistema de control de versiones que permite organizar versiones de ficheros de forma concurrente en un repositorio. Es una buena herramienta para programar en grupo e ir guardando cada revision de código. En cualquier distribución linux esta disponible y tiene incluso clientes windows.

En el mundo unix existen otras herramientas como SCCS (en Sun) o RSS pero CVS es la más extendida y se utiliza en grandes repositorios como sourceforge.

COMO ADMINISTRADOR
CVS debe estar instalado. Es un programa muy habitual. probad ejecutando 'cvs' . Lo primero, crear el repository comun:
cvs -d /usr/local/cvsroot init
Con eso creamos el repositorio CVS, y creara el directorio
/usr/local/cvsroot/CVSROOT
*Una vez instalado el repositorio comun, metemos un proyecto: Podemos crear un directorio para un proyecto concreto: Imaginemos que nuestro proyecto se llama wdproject (World Domination Project)
mkdir /usr/local/cvs/wdproject
Y le damos permisos al usuario de desarrollo en concreto:
chown desarrollo:desarrollo /usr/local/cvs/wdproject
La buena seria crear un grupo Unix para desarrollo, y a ese grupo darle acceso de escritura el repositorio. # Con esta orden, metemos codigo fuente en el repositorio
cvs import -m "Primeras fuentes" wdproject/el_nuevo_remoto el_nuevo start
Donde -m es para poner una etiqueta, el_nuevo un nombre de desarrollo, y start la orden de iniciar el desarrollo (la primera release). Conviene dar la orden a la "misma altura" de directorios. Ejemplo: desde /home/desarrollo/wdproject/business a: /usr/local/cvsroot/wdproject/business Asi no liamos mucho la cosa. # Por ultimo podemos pillar el fichero administrativo modules:
cvs checkout CVSROOT/modules
Eso nos descarga el fichero modules, y podemos editarlo poniendo: business wdproject/business Lo guardamos:
cvs commit -m "aņadido nuestro modulo" modules
# En resumen: CREAR UN REPOSITORIO Imaginemos que tenemos un contenio comprimido que queremos meter en CVS y crear una carpeta de trabajo en unix. Estos serian los pasos:

# mkdir /usr/local/cvs/wdproject
# tar zxvf wdproject.tgz
# cd wdproject/
# cvs import -m "Inicio " wdproject wdproject start
# cd ..
# rm -rf wdproject
# cvs checkout wdproject
Con todo eso el proyecto wdproject quedaria en el repositorio y no habriamos creado un directorio de trabajo soncronizado con el repositorio cvs. * Como configurar para que pueda accederse remotamente: Hay otras formas (rsh), en cualquier caso, no olvidar proteger puertos. Una buena opcion es meterlo a traves de inetd o xinetd. /etc/inetd.conf:
cvspserver 2401/tcp
/etc/xinetd.d/cvspserver:
service cvspserver
{
port = 2401
socket_type = stream

protocol = tcp
wait = no
user = root
passenv= PATH
server = /usr/local/bin/cvs
server_args = -f --allow-root=/usr/local/cvsroot pserver
}

COMO DESARROLLADOR

# DESDE windows: Nos instalamos WinCVS un buen programa disponible by the morro.
En "preferences" ponemos algo asi como: desarrollo@servidor_cvs_remoto:/usr/local/cvsroot

Nos conectamos al repositorio por pserver, o sea, tiene que estar en marcha el CVS a traves de xinet. Hacemos login, y si devuelve un codigo 0, es correcto. Despues, hacemos un checkout de todo.

A partir de entoces, todos los ficheros que tenemos y que queremos ir cambiando con edit. Y una vez terminado los cambios ejecutamos commit. Con view me parece que bloqueamos el fichero para solo usarlo nosotros. # Norma general. Una vez hemos montado un repositorio, conviene "traerselo", para que crearnos un directorio de trabajo al que se le aņade un directorio "CVS" que es el que controla los ficheros y las versiones. Si estamos trabajando dentro de ese directorio, en cada comando cvs se tendra en cuenta el directorio CVS local. # MODO CONSOLA(para programadores de pelo en pecho) Haciendo commit del fichero modificado:

$ cvs commit backend.c
o con comentario
$ cvs commit -m "Added an optimization pass" backend.c
# Pillando la ultima version:
cvs update README
# Con watch. Pillar un fichero -lock- editar, guardas, y desbloquear. Desde dentro del directorio de trabajo.
cvs watch on
cvs edit
-editamos el fichero a gusto-
cvs commit -m "Cambio"
cvs watch off
# Parametros para repositorios remotos:
comando:[[user][:password]@]hostname[:[port]]/ruta/al/repositorio
Por ejemplo: hacer checkout de un modulo llamado foo
cvs -d :ext:bach@faun.example.org:/usr/local/cvsroot checkout foo
# Borrado de ficheros: Para borrar un fichero del proyecto se debe eliminar primero en local, y mas tarde en el repositorio. (mejor si estamos en el directorio de trabajo) Para borrar del repositorio

cvs remove
cvs commit -m ""

Hasta la próxima.

 
© 2003 - Pello Xabier Altadill Izura - www.pello.info