2012-03-23 11 views
6

Tengo curiosidad por saber cómo se usa la información de combinación en Subversion, y qué tipo de problemas se pueden encontrar si la información de combinación es incorrecta. Por ejemplo, he ramificado branch1 y branch2 desde trunk. También tengo un subbranch1 y un subbranch2 originario de branch1. Considere que he hecho algo de desarrollo en branch2, y luego lo reintenté de nuevo al tronco usando svn merge --reintegrate ^/branch2. Luego, también quería agregar estos cambios al subbranch1 (extrayéndolos del trunk) y usar el comando por error, svn merge --reintegrate ^/trunk (agregando así el indicador --reintegrate al comando de fusión aquí también, aunque subbranch1 no es un antecesor inmediato de trunk).Información de fusión de Subversion, ¿qué tan importante es?

¿Qué problemas puede causar esto en el futuro?

Respuesta

2

Esta respuesta está obsoleta. Por favor, use Subversion> = 1.6.


Estás enfoque de ramificación es peligroso en general, pero a causa del accidente es aún peor.

Obtendrá muchos problemas al volver a enganchar todas las ramas.

  • Los cambios realizados por branch2 pueden parecer deleciones a subversion.
  • eliminaciones hechas por usted podría parecer adiciones a la subversión.
  • de tres vías-comparsion le puede dar resultados extraños (poniendo la misma pieza de código dos veces en el archivo, por ejemplo)

No se puede confiar en el de tres vías-comparsion más, usted tiene que comprobar cada cambiar manualmente!

Consulte What mother never told you about svn branching and merging para obtener más información.

P.S. Tuve que arreglar algo así una vez. Desde entonces usamos el salto de conejito (ver enlace).

+0

En la publicación del blog, no creo que Bunny Hopping sea necesario desde SVN 1.5, que hace un seguimiento de este tipo de cosas para usted. – hdgarrood

+0

SVN 1.5 solucionó algunos problemas, pero si haces un montón de fusión y ramificación te meterás en problemas. –

+0

El bunny-hop no es obligatorio. Es una solución para malas prácticas de SVN. ¿Por qué las personas esperan que la fusión sea simple si van a hacer MUCHOS cambios en el tronco Y en una sucursal? (¡Particularmente sobre el mismo código!) – exception

3

información Combinar realiza un seguimiento de esta información:

  • Las relaciones entre las ramas (subbranch1 se originó a partir branch1, que se originó a partir trunk, etc.)
  • qué revisiones han sido ya fusionaron

Si la información de combinación falta o es incorrecta, debería realizar un seguimiento de las fusiones manualmente, y esto podría ser propenso a errores. Al utilizar la información de combinación, solo deja que Subversion realice un seguimiento de toda esta información.

Cuestiones relacionadas