Montar un servidor CVS

julio 8th, 2009 by rael Leave a reply »

Que es un CVS

El Concurrent Versions System (CVS), también conocido como 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.

de Wikipedia

Como instalarlo

# apt-get install cvsd

Nos preguntará si queremos crear algun repositorio, lo cual simplemente añadirá las lineas [ Repos /XXXX ] al fichero de configuración.

Crear un repositorio

Le decimos al servidor que coga la carpeta "Repositorio" y la use como repositorio.

# echo "Repos /Repositorio" >> /etc/cvsd/cvsd.conf

# cvs -d /var/lib/cvsd/Repositorio init

Añadir usuarios a un repositorio

# cvsd-passwd /var/lib/cvsd/Repositorio NombreDelUsuario

Si queremos que el usuario pueda leer y escribir:

# echo "NombreDelUsuario" >> /var/lib/cvsd/Repositorio/CVSROOT/writers

Si queremos que el usuario solo pueda leer:

# echo "NombreDelUsuario" >> /var/lib/cvsd/Repositorio/CVSROOT/readers

Puesta en marcha

Nos aseguramos que los permisos esten bien:

# chown -R cvsd:cvsd /var/lib/cvsd/
# chmod -R 775 /var/lib/cvsd/Repositorio

Y re-arrancamos el demonio

# /etc/init.d/cvsd restart

Como conectarse y subir algún modulo

Nos conectamos.


# CVSROOT=:pserver:NOMBREDELUSUARIO:CONTRASEí‘A@SERVIDOR:/Repositorio; export CVSROOT
# cvs login

Nos colocamos en la carpeta del proyecto que queremos subir al CVS.

# cd /rutaalproyecto/
# cvs import -m 'Proyecto de Programación' NombreDelProyecto EtiquetaCualquiera IdentificadorDeLaVersion

Y nos desconectamos:

# cvs logout

Ejemplo del funcionamiento

eva:~# echo "Repos /traduccion" >> /etc/cvsd/cvsd.conf
eva:~# cvs -d /var/lib/cvsd/traduccion init
eva:~# cvsd-passwd /var/lib/cvsd/traduccion rael
/usr/sbin/cvsd-passwd: adding user 'rael' to '/var/lib/cvsd/traduccion/CVSROOT/passwd'
Enter new password:
Retype new password:
eva:~# echo "rael" >> /var/lib/cvsd/traduccion/CVSROOT/writers
eva:~# chown -R cvsd:cvsd /var/lib/cvsd
eva:~# chmod -R 775 /var/lib/cvsd/traduccion
eva:~# /etc/init.d/cvsd restart
Restarting cvs pserver chroot wrapper: cvsd.
eva:~# CVSROOT=:pserver:rael:**********@localhost:/traduccion; export CVSRO
eva:~# cvs login
Logging in to :pserver:rael@localhost:2401/traduccion
eva:~# cd /home/rael/avidemux/
eva:/home/rael/avidemux# cvs import -m 'Traduccion colaborativa de aviDemux' TraduccionAvidemux Esp version1_0
N TraduccionAvidemux/es.po
No conflicts created by this import
eva:/home/rael/avidemux# cvs logout
Logging out of :pserver:rael@localhost:2401/traduccion

Como usarlo desde Terminal

Para la traducción podemos usarlo mediante terminal.

eva:~# CVSROOT=:pserver:rael:**********@localhost:/traduccion; export CVSRO
eva:~# mkdir test
eva:~# cd test/
eva:~/test# cvs login
Logging in to :pserver:rael@localhost:2401/traduccion
eva:~/test# ls
eva:~/test# cvs checkout .
cvs checkout: Updating .
cvs checkout: Updating CVSROOT
U CVSROOT/checkoutlist
U CVSROOT/commitinfo
U CVSROOT/config
U CVSROOT/cvswrappers
U CVSROOT/loginfo
U CVSROOT/modules
U CVSROOT/notify
U CVSROOT/postadmin
U CVSROOT/postproxy
U CVSROOT/posttag
U CVSROOT/postwatch
U CVSROOT/preproxy
U CVSROOT/rcsinfo
U CVSROOT/taginfo
U CVSROOT/verifymsg
cvs checkout: Updating TraduccionAvidemux
U TraduccionAvidemux/es.po
eva:~/test# ls
CVS CVSROOT TraduccionAvidemux

En este momento, nuestra carpeta contiene todo lo del servidor.

eva:~/test# head -3 TraduccionAvidemux/es.po
# translation of es.po to Castellano
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
eva:~/test# tail -3 TraduccionAvidemux/es.po
"Puede necesitar copia inteligente.\n"
" ¿Activar?"
eva:~/test# echo "Prueba de que se actualiza" >> TraduccionAvidemux/es.po
eva:~/test# tail -3 TraduccionAvidemux/es.po
" ¿Activar?"
Prueba de que se actualiza
eva:~/test# cvs commit
cvs commit: Examining .
cvs commit: Examining CVSROOT
cvs commit: Examining TraduccionAvidemux
Log message unchanged or not specified
a)bort, c)ontinue, e)dit, !)reuse this message unchanged for remaining dirs
Action: (continue)
/traduccion/TraduccionAvidemux/es.po,v <-- TraduccionAvidemux/es.po
new revision: 1.2; previous revision: 1.1

Ahora vamos a volver a cargar el archivo del servidor.

eva:~/test# cvs co TraduccionAvidemux/
cvs checkout: Updating TraduccionAvidemux
U TraduccionAvidemux/es.po
eva:~/test# head -3 TraduccionAvidemux/es.po
# translation of es.po to Castellano
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
eva:~/test# tail -3 TraduccionAvidemux/es.po
" ¿Activar?"
Prueba de que se actualiza
eva:~/test#

Enlaces

Tux.cl

Gentoo Wiki

Advertisement