Universo netvibes Parche multisite para WordPress 2.5
Feb 25

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 <<- _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

Compartir:
  • Digg
  • del.icio.us
  • Technorati
  • Facebook
  • Google
  • BarraPunto
  • Furl
  • Meneame

Etiquetas:

Deja un comentario