He visto estas palabras muchas veces en las discusiones sobre Subversion (y supongo que sobre los repositorios en general). He estado usando SVN para mis proyectos los últimos años, pero nunca he entendido el concepto completo de estos directorios.
¿Qué significan?
En SVN una etiqueta y una rama son realmente similares.
Etiqueta = una porción definida en el tiempo, generalmente utilizada para las versiones
Rama = también una porción definida en el tiempo en la que el desarrollo puede continuar, usualmente usada para versiones mayores como 1.0, 1.5, 2.0, etc., entonces cuando se libera se etiqueta la rama. Esto le permite seguir apoyando una versión de producción mientras avanza con los cambios de ruptura en el tronco
Tronco = espacio de trabajo de desarrollo, aquí es donde todo el desarrollo debe ocurrir, y luego los cambios se fusionan de nuevo desde las versiones de la rama.
En realidad no tienen ningún significado formal. Una carpeta es una carpeta para SVN. Son una forma generalmente aceptada para organizar su proyecto.
El tronco es donde usted mantiene su línea principal de developmemt. La carpeta de la rama es donde usted puede crear, bueno, ramas, que son difíciles de explicar en un corto post.
Una rama es una copia de un subconjunto de tu proyecto en el que trabajas por separado del tronco. Tal vez es para los experimentos que podrían no ir a ninguna parte, o tal vez es para la próxima versión, que más tarde se fusionan de nuevo en el tronco cuando se convierte en estable.
Y la carpeta de etiquetas es para crear copias etiquetadas de su repositorio, normalmente en los puntos de control de la versión.
Pero como he dicho, para SVN, una carpeta es una carpeta. branch
, trunk
y tag son sólo una convención.
Estoy usando la palabra "copia" libremente. SVN no hace realmente copias completas de las cosas en el repositorio.
El directorio trunk es el directorio con el que probablemente estés más familiarizado, porque se utiliza para mantener los cambios más recientes. Tu código base principal debería estar en trunk.
El directorio branches es para mantener tus ramas, sean las que sean.
El directorio de etiquetas es básicamente para etiquetar un determinado conjunto de archivos. Lo haces para cosas como las versiones, donde quieres que "1.0" sean estos archivos en estas revisiones y "1.1" sean estos archivos en estas revisiones. Normalmente no se modifican las etiquetas una vez hechas. Para más información sobre las etiquetas, vea Capítulo 4. Bifurcación y fusión (en Control de versiones con Subversion).