Guía acelerada para montarse un SVN en casa

¿Estais pidiendo a gritos tener un entorno “cliente-servidor” de SVN para tener en vuestra casa, en el trabajo y no descartar la capacidad de poder trabajar con varios archivos o proyectos mediante un control de versiones “sencillo”?.

Como ya van varias personas (Nori entre ellas) que tienen problemas para configurarse este entorno de una manera sencilla (reconozco que fácil no es), voy a intentar plantear una guía acelerada que abarque tanto a la plataforma Windows XP, Linux y Mac Os X. Las diferencias son mínimas en los tres casos, con lo que respecta a la configuración. (seguir leyendo..)


Paso 1: descarga de binarios (o compilar las fuentes).

Paso 2: crear repositorio y configurar el acceso
El “repositorio” es el lugar de donde van a colgar todos nuestros proyectos y directorios. Los archivos que se generarán dentro del directorio que escojamos no deben editarse jamás directamente, únicamente los ficheros de configuración.

#desde consola o desde una terminal tecleamos lo siguiente donde [repositorio] se sustituye por el directorio de destino para nuestro nuevo repositorio, en el caso de Windows "c:\Proyectos\SVN", en el caso de Linux o Mac "/var/SVN" ...
svnadmin create [repositorio]

Antes de lanzar el servidor, no seas impacientes.., tenemos que ajustar un par de archivos:

Debemos editar el archivo "[repositorio]/conf/svnserve.conf" y descomentar la linea que empieza por "password-db" y asignarle el valor del archivo en donde guardaremos la tabla de usuarios/passwords.

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are “write”, “read”,
### and “none”. The sample settings below are the defaults.
anon-access = read
auth-access = write
### This option controls the location of the password database. This
### path may be relative to the conf directory. There is no default.
### The format of the password database is:
### [users]
### USERNAME = PASSWORD
password-db = passwd.txt
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is the path to the repository, relative to the server’s repository
### root.
# realm = My First Repository

Bien, editamos ahora el archivo “passwd.txt” tal como hemos indicado arriba.

[users]
USUARIO = PASSWORD

Aunque parezca obvio, y poco seguro (no lo niego) esta es la manera en la que indicamos que nuestro servidor de control de versiones permite al usuario “USUARIO” con password “PASSWORD” subir y bajar archivos del servidor.

Como comentario a este apartado, recordar que estamos haciendo una instalación “casera”, y que la seguridad no es una de las premisas principales.

Paso 3: trata de arrancarlo, el servidor..
Tenemos 2 formas de iniciar el servidor mediante el comando “svnserve”: como servicio, y como demonio vinculado a un puerto. Para hacerlo más sencillo y no liarnos configurando el “inetd”, o herramientas windows para arrancarlo como servicio.. elegiremos la segunda forma:


#(recordar, repositorio es la ruta que hemos creado antes..)
svnserve.exe -d -r [repositorio]

Con esto ya tendríamos iniciado el servicio, el repositorio creado y configurado para nuestro/nuestros usuarios y bastaría elegir un cliente svn.

Paso 4: elegir un cliente SVN.

  • Windows XP: la única opción, la más recomendables se llama TortoiseSVN, la podeis descargar aquí. Se trata de un programa que se integra completamente en el escritorio y permite realizar todas las operaciones desde el menu contextual.
  • linux Ubuntu: siempre teneis el comando “svn” de la terminal, o bien podeis probar alguno de los clientes multiplataforma, como rapidSVN.
  • Mac Os X: existen un par de opciones, las 2 de forma gráfica: SCPPlugin (se integra en el “Finder”) y svnX

A partir de aquí, el camino es un poco largo, podeis leeros todo este manual, perder media hora leyendo la ayuda del TortoiseSVN… al fin y al cabo, si podeis ejecutar el siguiente comando, es que todo ha funcionado, sino .., preguntadme, buscad en Google, etc..


svn checkout svn://localhost/

Related posts:

  1. BoKlok, la casa IKEA

4 thoughts on “Guía acelerada para montarse un SVN en casa

  1. Eo!

    Pues no sabes lo que me alegra que te encanten este tipo de post. A veces no se si resultan demasiado técnicos, muy poco, o si realmente le sirve de utilidad a alguien. Pero bueno… si dices y me aseguras (espero que no seas el único tampoco) que si, incluso puede que me curre algún “screencast”.

    Por cierto, a ver si un dia de estos nos acercamos a uno de tus monólogos. :P

  2. Haber la verdad es que me gustaria saber o que me explicaran lo siguiente:
    En google hay un servicio de hosting gratuito “http://code.google.com/p”, que ademas tiene soporte para subversion, ahora ahi ya he creado un proyecto y eso pero no tengo idea de como desde el cliente svn en mi pc (linux) construir y subir el proyecto a este servidor svn publico.
    Tan solo lo pregunto porque en general no encuentro informacion de como es el manejo cuando el servidor svn no esta en el mismo equipo en el que se trabajo.
    Muchas gracias

  3. Créeme, a mi me ha sido de muchísima utilidad. Después de un par de dias rebuscando por los entresijos de internet, por fin tengo mi control de código en mi propio ordenador (Mac).

    Por cierto, la última versión de subversion para mac es la 1.4.4, y hay un paquete ya compilado e instalable en http://www.codingmonkeys.de/mbo/

    Si no puedes hacerlo diréctamente desde Fink (http://fink.sourceforge.net/).

    Muchas gracias por este post, ha terminado con varias horas de torturas chinas.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>