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 <<- _EOF_ > /srv/svn/repositories/conf/passwd [users] root = root iCesofT = bar _EOF_ cat <<- _EOF_ > /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
Etiquetas: Versiones







