2009-03-30 14 views
216

Duplicar posibles:
What do “branch”, “tag” and “trunk” really mean?¿Qué es el tronco, la rama y la etiqueta en Subversion?

¿Qué es un tronco, rama y etiqueta en Subversion y cuáles son las mejores prácticas para usarlas?

¿Qué herramientas puedo usar para Subversion en Visual Studio 2008?

+0

... combinado con: http://stackoverflow.com/questions/453481/subversion-plugin-to-visual-studio –

+2

http://stackoverflow.com/questions/16142: "* [Qué hacer" rama "," Tag "y" trunk "realmente significan?] (Http://stackoverflow.com/questions/16142/what-do-branch-tag-and-trunk-really-mean) *". –

Respuesta

275

El tronco es la línea principal de desarrollo en un repositorio SVN.

A rama es una línea de desarrollo creada para realizar trabajos más grandes, experimentales o perturbadores sin molestar a los usuarios de la versión troncal. Además, las sucursales se pueden usar para crear líneas de desarrollo para múltiples versiones del mismo producto, como tener un lugar para respaldar correcciones de errores en una versión estable.

Finalmente, las etiquetas son marcadores que resaltan las revisiones más notables en la historia del repositorio, generalmente cosas como "esto fue lanzado como 1.0".

Consulte la versión HTML de "Version Control with Subversion", especialmente Chapter 4: Branching and Merging o cómprela en papel (por ejemplo, desde amazon) para una discusión en profundidad de los detalles técnicos.

Como otros (por ejemplo, Peter Neubauer abajo) la implementación subyacente como /tags/branches y /trunk directorios sólo es conventional y no de cualquier manera forzada por las herramientas. La violación de estas convenciones genera confusión en todas partes, ya que esto rompe los hábitos y las expectativas de que otros accedan al repositorio. Se debe tener especial cuidado para evitar la incorporación de nuevos cambios en las etiquetas, que debe congelar.


Uso TortoiseSVN pero no integración de Visual Studio. Mantengo abierto el cuadro de diálogo "Comprobar modificaciones" en el segundo monitor todo el tiempo, así puedo rastrear qué archivos he tocado. Pero consulte la pregunta "Best SVN Tools" para obtener más recomendaciones.

+5

Supongo que ankh es lo mejor para mí. Puedo hacer casi todo desde el estudio visual. Gracias! –

+1

Fundamentalmente, las respuestas proporcionadas por @ Peter-Neubauer y KOGI (abajo) son posiblemente más cercanas a la verdad. Como han notado, la respuesta de David Schmitt aquí simplemente explica la _convención_ de cómo esos directorios se usan típicamente, pero de hecho no hay nada mágico en esas carpetas per se, o cómo se utilizan. Gracias a David Schmitt, pero +1 a los demás por delinear esa diferencia crucial. – rondoagogo

+2

"Podría decirse" que el OP preguntó sobre las mejores prácticas, no la implementación (en mi humilde opinión) de esas. –

17

Un gran lugar para comenzar a aprender sobre Subversion es http://svnbook.red-bean.com/.

En lo que respecta a las herramientas de Visual Studio, me gusta AnkhSVN, pero aún no he probado el complemento VisualSVN.

VisualSVN depende de TortoiseSVN, pero TortoiseSVN es también un buen complemento de Ankh en mi humilde opinión.

+0

¿De dónde sacaste la idea de que Ankh confía en Tortoise? Afaik no es el caso, solo para VisualSVN. – Joey

+0

No sé de dónde obtuve esa impresión, pero sí pensé que era necesaria. En cualquier caso, creo que es bueno tener a Tortoise como un cumplido, ¡pero gracias por hacerme verlo! –

+0

Tengo ankh instalado sin tortuga. –

7

Un tronco se considera su base de código principal, una ramificación del tronco. Al igual que, crea una rama si desea implementar una nueva característica, pero no desea afectar el tronco principal.

TortoiseSVN tiene buena documentación y una gran herramienta de diferencia.

Uso Visual Studio, y uso VisualSVN y TortoiseSVN.

9

Para usar Subversion en Visual   Studio   2008, instale TortoiseSVN y AnkhSVN.

TortoiseSVN es un muy fácil de usar software de control Control de revisión/control de versiones/fuente para Windows. Como no es una integración para un IDE específico, puede usarlo con las herramientas de desarrollo que desee. TortoiseSVN es de uso libre. No necesita obtener un préstamo o pagar un salario anual completo para usarlo.

AnkhSVN es un proveedor de control de fuente Subversion para Visual Studio. El software le permite realizar las operaciones de control de versiones más comunes directamente desde el IDE de Microsoft Visual Studio. Con AnkhSVN ya no necesita dejar su IDE para realizar tareas como ver el estado de su código fuente, actualizar su copia de trabajo de Subversion y realizar cambios. Incluso puedes navegar por tu repositorio y puedes agregar tu herramienta de diferencias favorita.

5

Si eres nuevo a la subversión es posible que desee echa un vistazo a este post en SmashingMagazine.com, apropiadamente titulado Ultimate Round-Up for Version Control with SubVersion.

Cubre cómo empezar con SubVersion con enlaces a tutoriales, materiales de referencia, & Sugestiones de libros.

Cubre herramientas (muchas son ventanas compatibles), y menciona AnkhSVN como un plugin compatible con Visual Studio. Los comentarios también mencionan VisualSVN como alternativa.

4

Una fantástica utilidad gratuita para usar si tiene un equipo de desarrolladores es SVN Monitor. Sirve como un latido para tu árbol, indicándote cuándo hay actualizaciones, posibles conflictos, etc. Sin embargo, no es tan útil para un desarrollador solo.

32

Los directorios "trunk", "branches" y "tags" son convenciones en Subversion. Subversion no requiere que tenga estos directorios ni le asigne un significado especial. Sin embargo, esta convención es muy común y, a menos que tenga una muy buena razón, debe seguir la convención. Los enlaces de libros que otros lectores han dado describen la convención y cómo usarla.

22

La respuesta de David Schmitt resume muy bien las cosas, pero creo que es importante tener en cuenta que, para SVN, los términos 'branch', 'tag' y 'trunk' no significan nada. Estos términos son puramente semánticos y solo afectan la forma en que nosotros, como usuarios del sistema, tratamos esos directorios. Uno podría nombrarlos fácilmente 'principal', 'prueba' y 'lanzamientos'; Mientras todos los que usen el sistema entiendan cómo usar cada sección correctamente, realmente no importa cómo se llamen.

+0

Sí, es cierto. Subversion no lo restringe con tales convenciones de nomenclatura. Es solo una recomendación. Gracias por su respuesta, ayudó. –

+0

¿Entonces, por ejemplo, la subversión conoce el concepto de "revisión"? ¿Cada compromiso es solo una instantánea de todo el repositorio? ¿Cómo se sabe si alguien borra el 50% de las etiquetas de lanzamiento con uno de sus check-ins por error? ¿No tendrías que estar constantemente pendiente de eso? –

+0

@ebyrob hace mucho que no uso SVN, pero IIRC rastrea diferencias entre revisiones, NO instantáneas completas. De todos modos, y en cualquier VCS, existe la posibilidad de "eliminar" etiquetas de lanzamiento (o cualquier otro archivo/carpeta para el caso) que no desee eliminar. Sin embargo, puse "borrar" entre comillas, porque en realidad nunca desapareció, siempre está en la historia y siempre se puede restaurar (excepto por 1 * muy * caso marginal en GIT, creo) – KOGI

Cuestiones relacionadas