¿Cuándo reviso TRUNK vs el PROYECTO COMPLETO en un repository SVN?

Tengo una pregunta (con suerte pequeña) sobre SVN y revisando los repos. Básicamente veo tutoriales contradictorios y sugerencias sobre qué revisar y cuándo. Algunos dirán:

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

… mientras que otros dicen:

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

¿Cuándo quisiera tomar el baúl directamente frente a todo el proyecto? En el pasado, nunca he tenido problemas con ninguno de los dos, pero no estoy seguro de si hay escenarios en los que uno es preferible al otro.

Mejor.

Hay un par de otros puntos a tener en count sobre esto.

  1. El tree de tags (y generalmente será un tree) contiene instantáneas hipotéticamente inmutables de su código en un punto específico en el time; esto no es algo que quiera cambiar, ya que la mayoría de las implementaciones se basarán en las tags
  2. La mayoría de los clientes de Subversion se quejan si intentas realizar cambios en el tree de tags , en lugar de simplemente copyr en él
  3. Para la mayoría de los propósitos, trunk es un caso especial de los directorys bajo branches ; la única diferencia significativa es que se espera que contenga la ruta de desarrollo principal

Por lo general, no hay una buena razón para verificar todo el proyecto, como otros señalaron, ya que la mayoría de las veces solo trabaja en el enlace troncal y en una o dos sucursales, y todo el proyecto puede consumir una cantidad significativa de espacio en disco. La "twig" de desarrollo principal suele ser lo único que necesita.

Aquí hay un ejemplo del mundo real. Nuestro equipo hace todos los cambios de código contra el tronco. Cuando necesitamos una versión alfa (precompletar), simplemente labelmos el tronco. Una vez que presionamos "código completo" para una publicación determinada, creamos una twig de congelación de código, donde hacemos todos los cambios de nuestra versión. Las versiones beta, RC y GA se labeln desde esa twig. Si necesitamos parchar una versión GA, el parche se realiza contra la twig y se fusiona con el tronco. De esta forma, no tenemos que preocuparnos de que se filtren nuevos códigos en el GA probado y aprobado si necesitamos parchar algo específico. También nos permite comenzar a trabajar en la próxima versión del software tan pronto como se congele el código.

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

A algunos equipos les gusta crear una twig para cada error, y algunos trabajan directamente en el tronco (como el mío). Si tu equipo hace el error por twig, nunca verificaría todo el proyecto. Entre otras cosas, vería un montón de código que no me importaría.

Además, solo un punto acerca de la administración del repository como lo menciona @humble_coder : la mayoría de las herramientas de Subversion son bastante fáciles de usar cuando se trata de administración de sucursales / tags. Por ejemplo, TortoiseSVN tiene un browser de repository que te permite copyr cosas (crear twigs y tags) con bastante facilidad, e incluso la herramienta de command-line svn se puede usar para hacer lo mismo que una operación atómica (en realidad tenemos un script que crea las tags alfa, la twig congelación de código o las tags de liberación posterior al congelamiento).

¡Espero que esto ayude!

generalmente un repository de subversión tiene 3 directorys principales:

  1. twigs
  2. tags
  3. el maletero

El tronco es para la twig más actualizada del código.

Por lo general, las twigs se crean para desarrollar una característica específica que aún no desea en el tronco.

Las tags son como puntos de guardado del maletero.

Si haces un checkout en la raíz del proyecto, obtendrás todas las twigs, todas las tags y el tronco. Esto puede conducir a una gran cantidad de datos.

Por ejemplo, si cada versión de código está labelda, obtendrá el código fuente de todos sus lanzamientos anteriores.

Espero que esto ayude

Jerome Wagner

Depende de cómo diseñe su repository, pero generalmente tendrá esta estructura:

 /trunk /tags /branches 

Dentro de ambas tags y branches , puede tener varias copys del proyecto (dependiendo de nuevo de cómo usa el repository).

Si su repository está configurado de esta manera, y usted finaliza la compra / , terminará con varias copys del código (tags y twigs), que se supone que no debe tocar (tags, por ejemplo).

Si realiza el pago /trunk lugar, solo revisará la versión en la que está trabajando actualmente, que es lo que generalmente desea.

Nunca revisé todo el proyecto. Por lo general, solo estoy interesado en una twig a la vez, tal vez dos, ocasionalmente tres. Siempre revisé y actualicé el maletero. Si necesito verificar el funcionamiento de una label lanzada (tal vez por una investigación de errores) la verifico, investigo y elimino. Las twigs almacenadas debajo de las branches generalmente tienen un lapso de atención mucho más corto, es decir, se crean y utilizan febrilmente durante un corto período de time y luego nunca se vuelven a tocar.