Crear branch (ramas) en Subversion (SVN) com Eclipse

En uno de los proyectos en los que colaboro me hacía falta crear un branch de subversion utilizando mi entorno de desarrollo favorito (Eclipse); como me encontraba muy perdido sobre el funcionamiento de la opción Team que éste incluye (no es tan intuitiva como debería) y la ayuda que he encontrado en Internet no me ha servido de mucho he optado por crear este “guía burrosfor dummies.

Espero que aquellos menos “techies” que me seguís habitualmente no me reprochéis que, de vez en cuando, meta algún artículo algo más técnico enfocado al desarrollo de aplicaciones, el tema es que la próxima vez que tenga que volver a hacer uso de esto pueda encontrarlo fácilmente al tiempo que me gustaría ayudar a aquellos que hayan podido o puedan encontrarse en la misma situación.

Para crear una ramificación deberemos:

  1. Seleccionamos Team > Branch/Tag sobre la carpeta del proyecto
  2. Pulsamos el botón Browse que hay junto al apdo. To URL y seleccionamos el directorio Branches del servidor
  3. Completamos el apdo. To URL con el nombre deseado para el nuevo branch (en el ejemplo anterior he añadido el /prueba_borrame)
  4. Es interesante (no obligatorio) pulsar el botón Show Log que hay junto al apdo. Specific Revision in the repository y anotar el número de la última versión existente del trunk (para utilizarlo posteriormente en el apdo. Edit the branch/tag comment) aunque con indicar HEAD revision in the repository es suficiente
  5. Para evitar trabajo posterior podemos dejar marcada la opción Switch working copy to new branch/tag
  6. Con pulsar Ok podemos dar por finalizado el proceso.

15 comentarios en “Crear branch (ramas) en Subversion (SVN) com Eclipse

  1. Gustavo dijo:

    Acabo de crear una carpeta de repositorio en el svn y al hacer un “import into Repository” ademas de las 3 carpetas tengo la carpeta del proyecto. Eso debo copiarlo al trunk? Gracias

  2. @Gustavo no entiendo el problema con las ¿tres carpetas? (¿son de tu proyecto en concreto o te refieres a las carpetas branches, trunk y tags?)

    Igualmente la opción import into Repository no se encuentra entre las de Eclipse, ¿usas algún programa distinto?

    Un saludo compañero

    • Una rama o bifurcación del código.
      Normalmente se utiliza para implementar nuevas funcionalidades o corregir fallos del proyecto sin afectar directamente al código de la rama princial o trunk.
      No te disculpes por querer aprender.
      Saludos

  3. Jose Maria dijo:

    Hola.

    Muchas gracias.

    El caso es que he realizado un tag del proyecto y se ha de tocar codigo tanto del proyecto como del tag.

    ¿Como hago para que la gente que tenga que tocar código del tag, apunte a dicho tag?

    ¿Crear un tag es similar a crear un branch del proyecto?

    Mil gracias, por cierto el artículo me ha resultado muy interesante, justo lo que necesitaba.

    Salu2!

    • Tags y Branches son prácticamente con diferencias “semánticas”

      Un tag viene a ser como una “congelación” del estado de determinado proyecto.

      Un ejemplo sería al lanzar la versión 1.0.3 de nuestro proyecto: creamos un tag que deje marcado dicho hito.

      El apuntar al tag es similar que a un Branch o al Trunk: no tienen mas que hacer un check-out del mismo.

      Salu2

  4. Que tal buenas tardes, nadamás como comentario…. Crear branches y tags para proyectos en eclipse es muy sencillo, tu tuto está muy bien explicado…. lo único que te faltó en el inicio, antes de todo, es especificar que deben de estar en la perspectiva de SVN Repository Exploring para poder hacer ésto… (Menú Window/Open Perspective/Other…SVN Repository Exploring) =D y ya, todo lo demás muy bien 😉

  5. Por cierto, aclarando lo del trunk, branches y tags…. se supone q TRUNK es el directorio principal de tu proyecto, en donde se guarda todo con lo que trabajan, un tag, sería como hacer un respaldo por si no se está seguro de un cambio y un branch es como una copia alterna en la q se puede trabajar sobre varias cosas q afectan al proyecto en caso de q colapse 😛 y ya fin 😛

    • Conforme aunque incluiría una leve matización: un tag es una foto estática del trunk (ideal para las distintas releases del proyecto) mientras que el branch es una copia del trunk para trabajar en la inclusión de nueva funcionalidad y/o una corrección.

  6. Fran dijo:

    Buenas,

    si sacamos un branch en un momento determinado para comenzar en éste un desarrollo independiente, pero en un momento futuro en el que ambas líneas (trunk y branch) han ido evolucionando por separado, queremos que el branch inlcuya los cambios del trunk, ¿cuál sería el procedimiento? pues sería un merge pero con el branch (y no el trunk) como destino.

    Tal vez no sea este el sentido de crear branches y lo correcto fuera crear otro repositorio.

    Muchas gracias.

    Saludos.

    • De echo el branch no es para desarrollar por separado, pq si fuera eso, como dices Fran, pues se crea otro repo y ya… el branch es por si quieres trabajar por secciones, si en un proyecto trabajan varias personas, no se van a esperar a q uno de ellos acabe para seguir con el resto, lo ideal es dividir por secciones el proyecto aclarando cuáles deben ser las resultantes de éste, para que cuando se tengan versiones estables de cada sección se pueda hacer el merge y que si de seguro habian versiones inestables o errores humanos, así no afectan al proyecto entero real que está en el trunk 😉 no es desarrollo por separado, sólo seccionado 🙂 por experiencia propia… siempre hay errores… y más humanos que de cualquier otra cosa xD y no lo digo por mi, pq a mi no me gusta desarrollar, yo solo creo los proyectos, pongo la plataforma y a veces coordino, pero los desarrolladores se tienen q equivocar, si no, como probarían xD 😀 error-prueba 😛

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s