Confirmar cambios en una rama diferente a la rama actualmente extraída con subversion

115

He estado trabajando en el código extraído de la línea de desarrollo y descubrí que los cambios realizados podrían ser cambios importantes y es necesario moverlos a una rama experimental antes de comprometerme con el árbol de desarrollo principal. Sin embargo, no he revisado la rama experimental y no quiero perder los cambios que ya se han realizado.

¿Hay alguna forma de confirmar los cambios en la carpeta de trabajo en una rama diferente a la que se extrajo originalmente?

Paul Alexander
fuente

Respuestas:

129

Primero debe crear una rama a partir de una conocida sourceURL(esta sería su 'línea de desarrollo' que mencionó en la pregunta):

svn copy sourceURL branchURL

Luego, cambie a esa rama:

svn switch branchURL

Y confirma tus cambios:

svn commit
ryanprayogo
fuente
55

Podrías hacerlo en TortoiseSVN así:

  • Haga clic derecho en el directorio donde están los cambios que desea bifurcar. No debe ser la raíz del repositorio, menos duplicar de esa manera;
  • Seleccione TortoiseSVN -> " Rama / etiqueta ... ";
  • Establecer en URL : "svn: // host / repositorio / FooBar / ramas / FooBarBranchName";
  • Asegúrese de que [*] Copia de trabajo esté seleccionada . Esto asegurará que los cambios se confirmen;
  • Mensaje de registro : "Experimentando con moscas :)";
  • Opcional: Marque [*] Cambiar copia de trabajo a nueva rama / etiqueta . Esto es útil si planea seguir trabajando en la nueva rama. Aunque también puedes cambiarlo más tarde.
  • Intente encontrar el botón Aceptar . Pista: está en la parte inferior de la ventana centrada.

¡Disfrutar!

J Pollack
fuente
¿Qué quiere decir con "No debe ser la raíz del repositorio, menos duplicar de esa manera"?
thekozak
Recomiendo no elegir la carpeta raíz con todas las subcarpetas irrelevantes que no están sujetas a modificaciones en la rama. Más adelante será más fácil fusionar la rama (más pequeña) con el tronco.
J Pollack
En mi caso, comprometer solo esa carpeta causó problemas porque el software también depende de las supercarpetas. Creo que ese es el caso más a menudo. Creo que para la mayoría de los casos de uso es mejor confirmar todo, por lo que se recomienda comprometerse desde la raíz que digo.
ikku100
@ ikku100 si no hay cambios en esas supercarpetas, ¿qué importancia tendría?
simpleuser
Podría porque las personas más adelante podrían realizar cambios allí, pero supongo que puede verificar la revisión correcta de la supercarpeta y luego verificar la rama de la subcarpeta. Creo que es más trabajo que comprometerse con el superdir.
ikku100
8

Puede crear una nueva rama directamente desde su directorio de trabajo y cambiar el directorio de trabajo a esa rama.

Los comandos son svn copyysvn switch

Dima
fuente