2011-09-08 14 views
5

Sé que existe la opción --reintegrate en Subversion (SVN) 1.6 para fusionar una rama de características en la troncal.Reintegrar a la rama (no a la troncal) en Subversion (SVN)

Mi flujo de trabajo es un poco más complejo:

Tenemos ramas de características - fusionamos tronco a menudo. Pero no los devolvemos al baúl de inmediato. En su lugar, creamos una rama de lanzamiento fuera del tronco y fusionamos ramas de características para liberar la rama. En este punto, tenemos muchos conflictos de árbol (ya que existen muchos cambios tanto en la rama de características como en el tronco).

La opción --reintegrate debe ayudar en este caso, pero parece que --reintegrate no funciona cuando se combina con la sucursal que no sea troncal. ¿Es eso cierto?

+1

Parece que no es necesario reintegrar: Pude resolver mi problema después de leer esto: http://designbygravity.wordpress.com/2009/10/19/what-mother-never-told-you-about-svn- bifurcar-y-fusionar/ – tevch

Respuesta

4

Es una novedad para mí que no puede usar la opción --reintegrate en ninguna rama además de trunk. Subversion no tiene ninguna norma sobre el nombre o la ubicación de las ramas, por lo que no hay forma de que trunk sea especial. Para Subversion, branches, trunk y tags son meros directorios. Estos directorios son solo especiales para nosotros porque así lo dijimos.

La opción --reintegrate tiene que ver con el hecho de que si puedo combinar de rama Un en rama B, y luego intenta combinar la espalda de rama B en rama Un, que podría estar tratando de fusionar cosas a la rama A que estaba inicialmente en la rama A. La opción --reintegrate le permite a Subversion saber que estoy invirtiendo la dirección de mi fusión, y no considerar cosas en la rama B que fue realmente el resultado de la fusión de la rama A.

La reintegración es un problema en cualquier sistema de control de versiones que rastree los cambios fusionados. En cualquier caso, no hay ninguna razón por la cual --reintegrate deba involucrar una sucursal llamada trunk. De lo contrario, no hay una necesidad real de la opción. Todo lo que Subversion tiene que hacer es ver que te estás fusionando en una rama llamada trunk y darte cuenta de que probablemente sea una reintegración.

+1

Sí, estaba bajo la misma impresión: la reintegración no podía restringirse, pero nunca vi personas reintegradas a otras que no fueran troncales, y cuando me reincorporo a la sucursal obtengo esto: svn: '/ svn /! svn/bc/364751//releases/ 'ruta no encontrada – tevch

+0

Parece que reintegrar no es lo que necesito. Necesito 2 ramas de características fusionadas para liberar la rama (copia del tronco). Entonces, ¿cómo dejo saber a svn que no considere las cosas en la rama R que fueron realmente el resultado de la fusión de la rama T y deshacerse de todos estos conflictos de árbol? – tevch

+0

Así que ve desde Trunk-> Feature_branch, luego Trunk-> Release_branch. Los cambios en Trunk se combinan en Feature_branch. También compromete cambios en Feature_branch. Finalmente, desea fusionar Feature_branch a Release_branch. No estoy 100% seguro de que funcione, ya que las dos ramas no están relacionadas directamente. La fusión de Svn sigue siendo un poco débil. Es posible que sea mejor utilizar el '--ignore-ancestral'. Suscríbase a la [Lista de Subversion] (http://subversion.apache.org/mailing-lists.html) y pregunte allí. Esa lista se especializa en temas de Subversión y probablemente tenga más experiencia que la disponible aquí. –

Cuestiones relacionadas