Pregunta

¿Tienes una (esperemos pequeña) pregunta acerca de SVN y la salida a las cesiones temporales. Básicamente veo en conflicto tutoriales y sugerencias con respecto a lo que para ver y cuándo. Algunos dirán:

svn co http://my.repos.com/project my_project

... mientras que otros dicen:

co svn http://my.repos.com/project/trunk my_project

Cuando iba a querer agarrar el tronco directamente frente a todo el proyecto? En el pasado nunca he tenido problemas con cualquiera de los dos, pero no estoy seguro de si hay escenarios donde uno es preferible a la otra.

Mejor.

¿Fue útil?

Solución

Hay un par de otros puntos de nota sobre este.

  1. El árbol tags (y por lo general será un árbol) contiene instantáneas hipotéticamente inmutables de su código en un punto específico en el tiempo; esto no es algo que desea cambiar, como la mayoría de las implementaciones van a estar basado en etiquetas
  2. mayoría de los clientes se quejan de Subversion si intenta confirmar los cambios en el árbol tags, en lugar de simplemente copiar en ella
  3. Para la mayoría de los propósitos, trunk es un caso especial de los directorios bajo branches; la única diferencia significativa es que se espera que contenga el camino principal de desarrollo

Por lo general, hay una buena razón para ver todo el proyecto, como otros han señalado, ya que la mayoría de las veces sólo se está trabajando en el tronco y una o dos ramas, y el proyecto completo se puede comer una cantidad significativa de Espacio del disco. La principal novedad "rama" es más a menudo la única cosa que necesita.

Aquí hay un ejemplo del mundo real. Nuestro equipo realiza todos los cambios en el código contra el tronco. Cuando necesitamos un alfa liberación (pre-completa), que acaba de etiquetar el tronco. Una vez que llegamos a "código completo" para un lanzamiento dado, creamos una rama código de congelación, donde hacemos nuestros todos los cambios de versión. La beta, RC y comunicados GA etiquetados de esa rama. Si tenemos que parchear una versión GA, el parche se realiza contra la rama y se fusionó con el tronco. De esa manera, no tiene que preocuparse de nuevo código de fugas en el GA probado y aprobado si necesitamos algo específico parche. También nos permite empezar a trabajar en la próxima versión del software tan pronto como el código está congelado.

Además, si hay un "proyecto paralelo" que está fuera de banda para el tronco, se puede crear una rama para eso y fusionarlo cuando esté listo.

Algunos equipos como para crear una rama de todos los errores, y algunos trabajan directamente en el tronco (como la mía). Si su equipo hace la rama insecto-per-, nunca había echa un vistazo a todo el proyecto. Entre otras cosas, me gustaría ver una gran cantidad de código que no me importa.

Además, sólo un punto sobre la administración de repositorios como se ha mencionado por @humble_coder - la mayoría de las herramientas de Subversion es bastante fácil de usar cuando se trata de la gestión de rama / etiqueta. Por ejemplo, TortoiseSVN tiene un navegador de repositorios que le permite copiar las cosas (la creación de ramas y etiquetas) con bastante facilidad, e incluso la herramienta SVN de línea de comandos se puede utilizar para hacer la misma cosa que una operación atómica (en realidad tenemos un guión que crea cualquiera de las etiquetas alfa, la rama código congelación, o las etiquetas de liberación enviar por congelación).

Espero que esto ayude!

Otros consejos

por lo general un repositorio de subversión tiene 3 directorios principales:

  1. ramas
  2. etiquetas
  3. tronco

Tronco es la mayor rama hasta la fecha del código.

Ramas normalmente se crean con el fin de desarrollar una función específica que aún no desea en el maletero.

Las etiquetas son como Parada en puntos del tronco.

Si usted hace una comprobación en la raíz del proyecto, obtendrá todas las sucursales, todas las etiquetas y el tronco. Esto puede dar lugar a una enorme cantidad de datos.

Por ejemplo, si cada liberación de código se etiqueta, se le obtener el código fuente de todas sus versiones anteriores!

Espero que esto le ayudará a

Jerome Wagner

depende de cómo usted la disposición de su repositorio, pero por lo general, tendrá la siguiente estructura:

/trunk
/tags
/branches

Dentro tanto tags y branches, que pueden tener varias copias del proyecto (dependiendo nuevamente de cómo se utiliza el repositorio).

Si su repositorio se presenta esta manera, y realice el pago /, el resultado final será con varias copias del código (etiquetas y ramas), que puede que no se supone que tocar (etiquetas, por ejemplo).

Si usted paga /trunk lugar, usted sólo echa un vistazo a la versión que está trabajando en ese momento, que es lo que normalmente se desea.

Yo nunca pago y envío todo el proyecto. Por lo general, sólo estoy interesado en una rama a la vez, tal vez dos, a veces tres. Siempre tengo tronco desprotegido y actualizado. Si necesito para comprobar el funcionamiento de un marcador liberado (tal vez para la investigación de errores) que lo compruebe, investigar y eliminar. Ramas almacenados bajo branches normalmente tienen una capacidad de atención mucho más corto, es decir, que se crean y utilizan febril por un período corto y luego nunca se tocaron de nuevo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top