Trunk, branch y tag

Trunk, branch y tag son tres de los conceptos principales a manejar a la hora de utilizar un sistema de control de versiones, como CVS, Subversion, Git o Mercurial. A continuación tenéis una pequeña definición de estos tres términos.

  • Trunk (tronco): la línea principal de desarrollo, donde se llevan a cabo los cambios menos complejos del día a día. Idealmente debería poder compilarse y pasar todas las pruebas en todo momento (ver Integración continua). La persona que rompa la compilación, debe ser públicamente humillada, y debe pagar una penitencia en donuts
  • Branch (rama): cuando se van a llevar a cabo cambios importantes que romperán la compilación, pruebas, experimentos o intentos de optimización, debe crearse una nueva rama de desarrollo, con la que no molestemos a los compañeros, esto es un branch: una copia del código o la rama de la que deriva. En esta copia haremos nuestros cambios, integraremos los arreglos que puedan haberse ido haciendo en el trunk, y, una vez terminado el desarrollo en la rama, integraremos (o no) los cambios en el trunk. También puede crearse una rama para una versión terminada, hacer mantenimiento de esta versión sobre esta rama, y continuar el desarrollo de la nueva versión en el trunk.
  • Tag (etiqueta): etiquetas que sirven para identificar un cierto momento en el desarrollo que queremos preservar. Se utilizan habitualmente para marcar cambios de versión (alfas, betas, RC, RTM) y puntos de interés. Sobre un tag no se puede / no se debe hacer cambios
Comentarios
  1. Waoo, todo eso ya lo sabia, ahora estoy en un proyecto y estamos utilizando un servidor de Sub Version

    Responder

    • Aun que al principio se me complico la vida al empesar este tipo de organizacion, ahora para mi ya es indispensable en cualquier proyecto de desarrollo

      Responder

  2. Los más usados son los tag ¿o no?

    Responder

    • Depende el nivel de usuario que seas y la mayor parte de veses en el tag se ponen las vesiones estables y terminadas hasta el momento! como ejemplo:

      software v0.1
      software v0.2
      etc etc.

      Tambien puedes aplicar mass ramas aqui etc.. Las versiones se manejan dependiendo la modificacion que se le haga! Es algo fasinante!!

      Responder

    • Errepunto

      Más bien deberían ser los branches, ya que las versiones que estás desarrollando deberían estar en /branch, así que son las partes que mayor tráfico de commits tienen.

      Responder

    • Errepunto

      Los tags son más bien una especie de backup o catálogo de versiones pasadas: “la versión que rulaba el 3 de febrero era la 1.57, vamos a bajarla y ver en qué ha cambiado la 1.58 para que ya no vaya”.

      Responder

  3. DonKmoT

    muy bueno… aclara muchas dudas para los menos expertos

    Responder

  4. Alexis Salas

    Hola, muy interesante, yo he intentado de usar subversion varias veces, pero siempre claudico. Existe una tabla comparativa de SVN, GIT, CVS y Mercurial para cual es mejor para determinados proyectos? O en su defectos las ventajas y desventajas.

    Responder

    • mario

      No dispongo de la tabla comparativa que pides, pero hasta donde yo sé, en el mundo empresarial se suele utilizar SVN que es, además, el más conocido y supongo más utilizado de todos los que sugieres.

      Espero sirva de ayuda

      Un saludo

      Responder

  5. mario

    Aprovechando el tema, me gustaría preguntaros si conocéis la manera de montar tu propio servidor de subversion, disponible en la red, es decir, que no dependa de que tu máquina esté encendida para que otros puedan trabajar en él. Tengo entendido que los hostings habituales no permiten su instalación, y aunque conozco xp-dev.com, sólo te dejan dos proyectos privados y el resto deben ser públicos.

    Gracias de antemano =)

    Responder

    • erm3nda

      Subversion (software) incluye svnserve (servidor).
      Sólo hay que mirar la documentación e iniciarlo con los comandos que hagan falta.

      Luego, cuando conectas a un servidor SVN, pones localhost y au.

      Si prefieres un GUI, me temo que VisualVNC Server es el único que queda potable, y que no es ni más ni menos que un wrapper (marco) para el Subversion, pues lo incluye dentro.
      VisualSVN además incorpora Apache para la interfaz web.

      Responder

  6. […] Branches ni Tags, sólo con un Trunk tengo más que suficiente (si no sabes de que hablo pincha aqui). Silk SVN es MUY (en serio), muy sencillo de […]

    Responder

  7. Ricardo

    Hola, veran soy totalmente nuevo en el mundo de la subversion y pues, estoy en mi primer trabajo como desarrollador y me han mandado a averiguar y aprender todo sobre lo que es el SVN, no entiendo especificamente que hacen el trunk, branch y tag. Tengo que poner en alguno de ellos el proyecto por completo o como es el procedimiento si alguno tiene como ayudarme le agradezco de antemano. Gracias.
    Desde Lima – Perú!

    Responder

  8. Roger Ruiz

    Pienso que esta herramienta es parte de nuestro diario vivir, en cuestiones de desarrollo

    Responder

Deja un comentario