viernes, 27 de febrero de 2009

Como crear un SVN Externals y no morir en el intento

Hoy se me planteó la necesidad de generar un externals en un repositotio svn de un proyecto complejo, la documentación que encontré fue bastante buena, pero siempre quedan esos "detalles" que nos pueden hacer perder un poco de tiempo

Para empezar, hacemos referencia a que el soft del svn que usamos es el tortoise y tomamos el link de la help para este caso.

Bien, según la ayuda, nos dice que la forma de agregar un externals es la siguiente:

Vamos a la carpeta contenedora de las carpetas que queremos tener como externals
  • Clic derecho sobre ésta, TortoiseSVN->properties

  • Clic en new(o add, depende de la versión del svn)

  • De la lista seleccionamos "svn:externals".

    Dentro del cuadro de texto, vamos a colocar una o mas instrucciones, cada una representa un external distinto.







  • El comando a introducir en el cuadro de texto tiene el siguiente formato:
    carpeta_destino http://ruta_al_repo/carpeta_origen/

    Observaciones:
    1. Todo el contenido dentro de "carpeta_origen" se copiará dentro de la "carpeta_destino" (que a su vez se creará dentro de la capeta donde definimos el external).
      carpeta_destino es un "alias" a la carpeta apuntada por el external, por lo tanto no debe existir en el repo de destino, si existe, habría un conflicto con entre las dos rutas que deberá leer al momento de hacer el update.
    2. La ruta debe terminar con la "/"
    3. Debe haber un espacio entre carpeta_destino y su url en el repo

  • Una vez completada la lista de externals, damos clic en OK y veremos que nos queda solo una línea donde en la columna "Property" aparece el comando "svn:externals" y en "value" aparecen todos los externals definidos separados por un espacio.
  • Paso siguiente importantísimo, debemos hacer un commit del external para que el svn se de cuenta de ello, y luego, recién allí estamos habilitados para hacer un update del repo para poder ver como (satisfactoriamente) se crean las carpetas (alias) con el contenido de los externals.
Con eso veremos satisfactoriamente como se puede generar un externals sin arrancarse los pelos :D

1 comentario:

Anónimo dijo...

excelente!!! si bien hay material como decias, esto esta super claro!
gracias!