¿Cómo muevo un archivo (o carpeta) de una carpeta a otra en TortoiseSVN?

247

Me gustaría mover un archivo o carpeta de un lugar a otro dentro del mismo repositorio sin tener que usar Repo Browser para hacerlo, y sin crear dos operaciones independientes de agregar / eliminar. El uso de Repo Browser funciona bien, excepto que su código se colgará en un estado roto hasta que se registre cualquier cambio posterior (como el archivo .csproj, por ejemplo).

Actualización: la gente ha sugerido "moverse" desde la línea de comando. ¿Hay un equivalente de TortoiseSVN?

jeremcc
fuente

Respuestas:

448

Para mover un archivo o conjunto de archivos usando Tortoise SVN, haga clic derecho y arrastre los archivos de destino a su destino y suelte el botón derecho del mouse. El menú emergente tendrá una SVN move versioned files hereopción.

Tenga en cuenta que la carpeta de destino ya debe haberse agregado al repositorio para SVN move versioned files hereque aparezca la opción.

Mark Embling
fuente
32
Necesitaba hacer lo mismo y esto funcionó perfectamente. Nunca supe de esta opción. ¡Muchas gracias!
DavGarcia
44
¡Gracias! Nota: Luego, muestra en el registro de cambios un montón de directorios y archivos BORRADOS y AGREGADOS, pero el historial de revisiones sigue los archivos. :)
Yoh Suzuki
1
¿Qué hago si ya moví el archivo pero svn todavía piensa que está en otro directorio?
Shawn Mclean
44
También (sin duda en v1.7.6) debe asegurarse de que el directorio en el que está moviendo los archivos ya esté agregado a subversión
icc97
La respuesta legendaria me alegró el día, ty!
Cyril Gandon
22

En el Explorador de Windows, con el botón derecho del mouse, haga clic y arrastre el archivo desde donde está hasta donde lo desea. Al soltar el botón derecho del mouse, verá un menú contextual con opciones como "SVN Move versioned file here".

http://tortoisesvn.net/most-forgotten-feature

yknott
fuente
5

Si desea mover archivos y mantener los archivos csproj actualizados, la forma más fácil es usar un complemento de Visual Studio como AnkhSVN . Eso confirmará automáticamente la acción de mover (como eliminar + agregar con historial, porque así es como funciona Subversion) y un cambio en el .csproj

Sander Rijken
fuente
4

Desde la línea de comando, puede escribir svn mv path1 path2. Esto creará una operación de agregar y eliminar, pero no hay una forma de evitar eso, hasta donde yo sé, en Subversion.

Clinton N. Dreisbach
fuente
3

Subversion aún no tiene operaciones de cambio de nombre de primera clase.

Hay un error de 6 años en el problema: http://subversion.tigris.org/issues/show_bug.cgi?id=898

Se está considerando para 1.6, ahora que se ha agregado el seguimiento de fusión (una prioridad más alta) (en 1.5).

swmc
fuente
1

Use el comando RENAME de Tortoise y escriba una ruta relativa ("folder / file.ext").

WhyNotHugo
fuente
0

Como se mencionó anteriormente, creará los comandos agregar y eliminar. Puede usar svn move tanto en su copia de trabajo como en la url del repositorio. Si usa su copia de trabajo, los cambios no se confirmarán; deberá hacerlo en una operación separada.

Si mueve una URL, deberá proporcionar un mensaje -, y los cambios se reflejarán en el repositorio de inmediato.

dwilkins
fuente
0

Use el svn movecomando para mover el archivo / carpeta.

acemtp
fuente
0

Debe arrastrar el archivo con el botón derecho del mouse. En el momento en que suelte el archivo en el nuevo destino, observará la opción:

SVN mueve archivos versionados aquí.

Simplemente seleccione esta opción y listo.

Manish Singhal
fuente