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:
- Comerciales:
- Gratuitas (GPL y/o Open Source):
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
No hay entradas relacionadas.









