Entendemos como control de versiones a la gestión de las distintas versiones (o revisiones) de los componentes que mantenemos de un determinado proyecto / producto u otro tipo de elemento susceptible de versionado.

Puede verse una definición más completa en Control de versiones.

Software

Para dar soporte al control de versiones hay disponibles múltiples herramientas, tanto comerciales, como de libre distribución, como:

De estas herramientas, utilizaré Subversion, por ser open source y disponer de mejores características que CVS.

Instalación

En primer lugar, instalamos la aplicación:

apt-get install subversion

Para otros sistemas operativos, será necesario descargar los clientes desde la página principal de Subversion.

Una vez instalada, creamos el grupo y el usuario sobre los que correrá el servicio:

groupadd svn
adduser -c "SVN Owner" --home /srv/svn --ingroup svn --firstuid 100 --lastuid 200 \
--disabled-login --shell /bin/false svn

Configuración

Ahora generamos el repositorio:

install -v -m 0755 -o svn -g svn -d /srv/svn/repositories
svnadmin create --fs-type fsfs /srv/svn/repositories
chown -R svn:svn /srv/svn/repositories

Con el repositorio creado, el siguiente paso es la configuración de Subversion como demonio, creando el archivo /etc/init.d/svnserve:

#!/bin/sh
# start/stop svn (Subversion) server

set -e
NAME=svnserve
DESC="Subversion server"
DAEMON=/usr/bin/$NAME
PARAMS="-d -T -r /srv/svn/repositories"
DAEMONUSER=svn
test -x $DAEMON || exit 0
. /lib/lsb/init-functions

start_it_up()
{
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --quiet --chuid $DAEMONUSER:$DAEMONUSER \
--exec $DAEMON -- $PARAMS
log_end_msg $?
}

shut_it_down()
{
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --retry 60 --quiet --oknodo --exec $DAEMON
log_end_msg $?
}

case "$1" in
start)
start_it_up
;;
stop)
shut_it_down
;;
restart)
shut_it_down
start_it_up
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2
exit 1
;;
esac

exit 0

Ahora sólo queda crear los enlaces simbólicos necesarios en la estructura /etc/rcx.d para que el servicio se arranque y se pare automáticamente al arrancar y parar el servidor. Para ello se ejecutará el siguiente comando:

update-rc.d svnserve defaults

A continuación configuramos el servicio (usuarios):

cat < /srv/svn/repositories/conf/passwd
[users]
root = root
iCesofT = bar
_EOF_

cat < /srv/svn/repositories/conf/svnserve.conf
[general]
anon-access = none
auth-access = write

password-db = passwd

realm = Subversion Repository
_EOF_

chmod 770 /srv/svn/repositories

(Cambiar las contraseñas a las contraseñas deseadas)

Creación de un proyecto

Ahora podemos importar un proyecto de ejemplo, para lo cual, primero creamos la estructura base:

cd /tmp
mkdir -p project/{branch,tags,trunk}
cd project/trunk
mkdir dir{1,2,3}

Ahora importamos dicha estructura:

cd /tmp
svn import project svn://host/project -m "Initial release"

Y, para comenzar a trabajar sobre este proyecto, hacemos check-out:

cd
mkdir scm
cd scm
svn checkout svn://host/project/trunk project
Compartir:
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Google Buzz
  • LinkedIn
  • Meneame
  • Print

No hay entradas relacionadas.