2009-08-12 17 views
87

Me gustaría fusionar todos los cambios que tuvieron lugar entre la versión 10 & HEAD rev en http://url-of-branch-a y aplicarlos al http://url-of-branch-b.SVN - fusiona una rama en otra?

Algo así como ...

svn merge -r 10:HEAD http://url-of-branch-a 

Es esto posible? Si es así, ¿cuál es la sintaxis?

Estoy ejecutando el cliente SVN desde la línea de comandos de Unix. La versión de cliente de SVN es de 1,4

EDIT: Sí, mi solución específica era ...

  1. cambie el directorio a la ubicación de mi copia de trabajo que quiere recibir los cambios (rama-b)
  2. svn merge -r 10: CABEZA http://url-of-branch-a

Este fusiona los cambios de 'rama-a' en 'rama-b'

+4

Votó como una necesidad común, tiene una buena respuesta de Billy3 y está mal documentada en otros lugares de la web. – fooMonster

+4

También necesita saber cuándo se tomó la rama.Puede hacer esto (svn log --stop-on-copy.) En su rama para obtener el número de revisión desde el que se ramificó. – jmc

+0

@jmc ya no necesita esto desde el año 2008 cuando se lanzó SVN 1.5, AFAIR – bahrep

Respuesta

49

Pedido URL A. Use SVN combinación para combinar URL B a su copia de trabajo de A. Commit A.

O viceversa, por supuesto :)

+1

Gracias. Esto me hizo pensar sobre el tema de la manera correcta. hecho para una solución fácil – user62732

116

Es un proceso de tres pasos (como se muestra BillyONeal).

  1. Establecer una copia de trabajo de la rama B (svn checkout http://branch-b)
  2. fusionar los cambios de la rama A en la copia de trabajo de B (svn merge -r 10:HEAD http://branch-a .)
  3. Commit (después de la resolución de conflictos) copia de trabajo B en rama b (svn commit)

Consulte la página man (archivo de ayuda) para svn merge semántica. Le muestra que svn merge siempre volca los resultados en una copia de trabajo.

Consulte the SVNBook para obtener todos los detalles.

+0

tiene sentido total ahora. ¡Gracias! – user62732

+35

+1 - esta respuesta es mejor que la mía. –

+0

¿Podría darnos una idea de cómo hacerlo utilizando el complemento SVN en eclipse? –

0

Parcialmente confundir merge al tratar de hacer de repositorio SVN, no podemos fusionar directamente a svn repo, podemos combinar con copia de la máquina local que trabaja de la siguiente manera:

  • Esta copia de trabajo debería ser destination URL de fusionar (es decir, destino de pago).

  • fusionar copia de trabajo con source URL de fusionar.

  • commit a destino.

Mejor Práctica: Combinar en, Fusionar hacia fuera.

Cuestiones relacionadas