2008-09-05 9 views
190

Estoy usando TortoiseSVN contra el repositorio SourceForge SVN. Me gustaría mover un archivo de una carpeta a otra para mantener su historial de revisión. es posible? Si es así, como lo haces?¿Cómo mueves un archivo en SVN?

(Mi estrategia actual consiste en copiar el archivo en la carpeta nueva y comprobar que funciona y luego eliminar el archivo de la carpeta actual.)

Respuesta

83

Subversion tiene soporte nativo para mover archivos.

svn move SOURCE DESTINATION 

Consulte la ayuda en línea (svn help move) para obtener más información.

+1

Gracias. Para mover archivos a un nivel, mira [mi respuesta aquí] (http://stackoverflow.com/a/10850371/171436), ya que no era obvio para mí por qué el comando esperado 'svn move ./folder. /' No funciona. – Joost

2

Creo que en el navegador svn en tortoisesvn puede simplemente arrastrarlo de un lugar a otro.

0

Si no me equivoco a partir de la versión 1.5 SVN puede rastrear archivos movidos \ carpetas. En TortoiseSVN el uso puede mover el archivo a través de arrastrar & soltar.

1

También se puede llamar "rename" por tortuga, pero svn move, es el comando en el cliente barebones svn.

+0

¡la respuesta más simple y precisa es esa! usando archivos móviles TortoiseSVN se hace con un clic derecho> renombrar. Eso es. – RoeeK

16

Uso de TortoiseSVN Acabo de hacer clic derecho y arrastrar la carpeta de una ubicación a otra. Cuando suelte el clic derecho, tendrá la opción de "SVN Move Version File". Sin embargo, creo que SVN no hace nada "sofisticado" allí, sino que simplemente elimina el archivo en la ubicación anterior y lo agrega a la nueva ubicación.

283

Comprobar la sección de 5.14.2. Moving files and folders (o echa un vistazo a "mover" en el Índice de la ayuda) de la ayuda TortoiseSVN. Usted hace un movimiento con arrastrar a la derecha. También menciona que debe comprometerse desde la carpeta principal para que sea "una" revisión. Esto funciona para hacer el cambio en una copia de trabajo.

(Tenga en cuenta que los elementos de SVN en la siguiente imagen sólo se mostrará si la carpeta de destino ya ha sido añadido al repositorio.)

tortoise move menu

También puede hacer el movimiento a través del navegador de repositorios (sección 5.23. The Repository Browser de la ayuda).

+0

Cuando destaqué todos mis archivos, arrastrado a la derecha, apareció el menú normal del explorador de Windows. Me permitió seleccionar "mover" pero no era una opción SVN, así que no estoy seguro de que haya sucedido algo. Cuando revisé para ver si había modificaciones, dijo que se eliminaron 300 archivos y 300 no fueron versionados. Esto no parece funcionar correctamente. Tengo miedo de comprometerse sin saber si esta es la forma en que se supone que funciona o no –

+37

Me acabo de dar cuenta que probablemente no funcionaba porque no había agregado/cometido el nuevo directorio aún –

+0

Sé que esto es años más tarde - - pero el comentario de Joe es importante. también tuve problemas con esto, pasé por alto esa pequeña nota en la respuesta. La carpeta de destino debe estar bajo el control SVN; de lo contrario, esto no funcionará. Afortunadamente SVN permite agregar carpetas vacías. Después de colocar la carpeta bajo el control SVN, la Arrastre con el botón derecho del mouse funcionará como se describió anteriormente. De lo contrario, se presenta el menú genérico de Windows "Copiar aquí/mover aquí/cancelar" (es decir, faltan opciones de SVN). – ripvlan

30

En TortoiseSVN, haga clic derecho en algún lugar e ir a TortoiseSVN> Repo Browser abrir el repositorio.

Todo lo que tiene que hacer es arrastrar y soltar el archivo de una carpeta a la ubicación que desee. Le pedirá que agregue un mensaje de confirmación y lo establece por defecto en "Archivo/carpeta movidos de forma remota"

+1

Esa es la solución más confiable. No olvides lanzar Update en tu carpeta local para sincronizarlo con Repo. –

+1

Pero, ¿qué pasa si no quiero tener una confirmación para cada carpeta? Quiero tener exactamente un compromiso de transición. – Bondax

+0

¡Funcionó muy bien para mí! Tuve que actualizar ambas carpetas desde las que me mudé, o ir a un nivel debajo de ambas. – FreeSoftwareServers

68

Con TortoiseSVN solo muevo el archivo en el disco.

Cuando llego a cometer mis cambios que seleccione el archivo que falta y el nuevo y seleccione "Repair move" desde el menú del botón derecho:

enter image description here

Esto significa que puedo dejar que mi IDE movimiento redonda archivos y usarlo herramientas de refactorización sin perder historial.

+1

Esta es mi forma preferida de mover los archivos ahora. Una advertencia solo haga <20 archivos a la vez entre confirmaciones; de lo contrario, puede llevar mucho tiempo encontrar los archivos que se relacionan entre sí. – DarrenMB

+0

Estoy usando TortoiseSVN 1.8.6 y no veo ninguna opción de "mover la reparación" en el menú contextual cuando me comprometo? – BornToCode

+0

@DarrenMB tiene razón: estoy a punto de migrar un proyecto de Android de Eclipse a Android Studio.Todos los archivos deben ser movidos. Este enfoque no es el que quiero usar aquí. – Bondax

15

Para TortoiseSVN cliente:

  1. Seleccione los archivos que desea mover,
  2. derecho clic y arrastrar los archivos a la carpeta que desea mover a,
  3. una ventana pop-up después de soltar la función de arrastrar y soltar en una carpeta. Haga clic en "SVN Move versioned item (s) here",
  4. Después de hacer clic en el cuadro de mensaje de la ventana de confirmación aparecerá. Ingrese un mensaje y envíelo.

Ya ha terminado.

0

Si está moviendo carpetas a través del navegador de repositorios, no hay opción Mover al hacer clic con el botón derecho; la única forma es arrastrar y soltar.

6

Cortar archivo a través del menú contextual del sistema operativo como lo hace normalmente, luego en lugar de hacer un pegado regular, haga clic derecho para traer el menú contextual y luego seleccione TortoiseSVN -> Paste (asegúrese de confirmar desde el directorio raíz los archivos antiguos y nuevos en la confirmación)

+0

Primero asegúrese de que Tortoise SVN agregue la carpeta en la que está pegando. – xinthose

Cuestiones relacionadas