2010-11-12 17 views
5

Esto debería ser trivial y obvio, pero no puedo encontrar ningún ejemplo de esto. (Estoy seguro de que es porque estoy buscando las palabras equivocadas.)"Fusionar" nuevo archivo en el tronco en una rama

Necesito unir un archivo del tronco de mi repositorio a una rama. El archivo es nuevo en el tronco y aún no está en la rama; por lo tanto, la forma normal en que sé hacer una fusión simplemente no funciona. Por lo tanto, necesito obtener ese nuevo archivo en la rama de alguna manera.

Necesito hacer esto selectivamente con archivos particulares; en otras palabras, no quiero fusionar todo el tronco, y ni siquiera puedo fusionar una lista de cambios completa.

Gracias por cualquier sugerencia.

edición — que se dan cuenta de que acabo de puedo copiar el archivo de mi espacio de trabajo tronco y svn add a la rama, pero no creo que esa es la forma "correcta" de hacer esto.

+0

¿Intentó fusionar solo la revisión que introdujo ese archivo? si, por supuesto, era el único archivo ... – mpapis

+0

No, el registro en el maletero contenía muchas cosas que no puedo fusionar en la sucursal. – Pointy

Respuesta

10

Puede hacer algo como svn cp ^/trunk/file1 ^/branches/mybranch/file1 para copiar archivos individuales del tronco a la rama.

+0

Guau, eso sí que hace * algo *. Además, si pudiera votar dos veces, lo haría por ese truco "^". Supongo que eso significa algo así como "el host obvio del repositorio" para un significado apropiado de "obvio". – Pointy

+2

^significa 'la raíz del repositorio de la copia de trabajo actual'. –

+0

Esto parece incorrecto, creará un conflicto cuando más tarde intente hacer una fusión entre trunk y mybranch. –

0

El siguiente comando, hace caso omiso de cualquier conflicto, sobrescribe los archivos antiguos y añade nuevos archivos: Ir al tronco y fusionar directorios de rama:

svn merge --Acepte de ellos con todas las

0

Encuentra el directorio padre eso ya existe en la rama de destino. Use --depth para fusionar recursivamente directorios y archivos.

Por ejemplo:

svn merge -c 1234 --depth infinity ^/RING/trunk/exec/parent parent 

Dónde 1234 es el número de revisión que se fusionen.

Pueden existir nuevos archivos en ^/RING/trunk/exec/parent, pero aún no se han creado en el directorio principal de la rama de destino. El comando de fusión anterior agregará los nuevos archivos en el directorio padre de la rama de destino.

Cuestiones relacionadas