tortoise tag subversion ramas merging hacer desarrollo svn tortoisesvn merge svn-reintegrate

svn - tag - subversion ramas desarrollo



¿Es seguro usar una rama de la característica de subversión después de reintegrarse y fusionarse al tronco? (5)

Hacemos esto a menudo (SVN 1.5 y superior). Solo debes asegurarte de no volver a agregar esos cambios a la rama.

Para hacer eso, simplemente haga un rango de revisiones combinadas desde el tronco a la rama. Especifique la revisión en la troncal en la que realizó la reintegración de la rama y márquela como "Solo grabar la fusión" desde la revisión de la troncal a la rama.

Una vez que hagas eso deberías ser bueno para irte.

Editar
El punto que wcoenen saca del artículo sobre conflictos es válido. Si no sincroniza los cambios de troncales en la rama antes de realizar la reintegración, tendrá el problema de conflicto. Mantenemos la rama sincronizada y no hemos tenido ningún problema en continuar reutilizando la rama después de varias reintegraciones.

Editar 2

Mantener viva una rama reintegrada ( http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html )

Existe una alternativa para destruir y recrear una rama después de la reintegración. Para comprender por qué funciona, debe comprender por qué la sucursal inicialmente no es apta para un uso posterior una vez que se haya reintegrado.

¿Se debe eliminar una rama de función una vez que se haya fusionado (reintegrado) nuevamente al tronco?

Prefiero fusionar constantemente los cambios de mi rama de funciones, creo que esto mantiene los conflictos al mínimo. Sin embargo, entiendo que una vez que use la fusión de reintegración en el troncal, se debe eliminar una rama de función.

¿Es tan? ¿Por qué? ¿Qué puedo hacer para evitar esto?

Actualización Estoy preguntando acerca de los problemas técnicos que provienen de la herramienta, no de "problemas de metodología". Tengo la intención de seguir trabajando en la rama de características después de la fusión.

Actualizar la respuesta superior de hecho especifica un procedimiento bastante complejo (fusionar, eliminar y renombrar). ¿Hay una manera fácil de lograr esto en TortoiseSVN? ¿No debería haber?




Todo esto depende de su opinión personal y de la cantidad de personas que se fusionen en el baúl.

Si hay muchas personas que se están fusionando, es probable que sea mejor combinar solo una rama una vez que haya terminado, y luego eliminarla (siempre puede acceder a ella volviendo a la última revisión donde existía). Si intentas unirte continuamente en esta situación, simplemente te confundirás.

Sin embargo, si no tiene muchas subramas y está usando Subversion 1.5+, puede salirse con la suya y puede ayudar a evitar conflictos de fusión.

Por supuesto, si su "troncal" se usa como un repositorio de versiones / candidatos / lanzamientos beta, entonces no debe hacer esto.


editar : Este problema parece haberse solucionado en SVN 1.8. La sección sobre la fusión básica del libro SVN 1.8 se ha actualizado para indicar que está bien reutilizar una rama de características. La respuesta a continuación solo es relevante para versiones anteriores de SVN.

De la sección sobre fusión básica en el libro svn:

En Subversion 1.5, una vez que se realiza una fusión de reintegración de una rama a otra, la rama ya no se puede utilizar para un trabajo posterior. No es capaz de absorber correctamente los nuevos cambios de troncales, ni tampoco puede reintegrarse de manera adecuada en el troncal. Por este motivo, si desea seguir trabajando en su rama de características, le recomendamos destruirlo y luego volver a crearlo desde el tronco:

Este sigue siendo el caso en SVN 1.6 y 1.7.

Este excelente artículo sobre fusiones reflexivas explica por qué exactamente no puede o no debe reciclar una rama de función. Resumen de los puntos más importantes:

  • Puede trabajar para resolver conflictos al reintegrarse con el tronco.
  • La confirmación de reintegración en el tronco, por lo tanto, contiene tanto los cambios provenientes de la rama de características como el trabajo de resolución de conflictos.
  • Sin embargo, Subversion no lo ayudará a combinar este trabajo de resolución de conflictos con la rama de características. Simplemente mira el mergeinfo y piensa que "estos cambios provinieron originalmente de la rama de la característica, no hay necesidad de fusionarlos nuevamente en su origen".

Eliminar la rama de función y volver a filmar es barato y evita todo este problema.