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 estará colgado en un estado roto hasta que obtenga los cambios de soporte que se verifican posteriormente (como el archivo .csproj, por ejemplo).
Actualización: la gente ha sugerido "mover" desde la línea de comando. ¿Hay un equivalente de TortoiseSVN?
Para mover un archivo o conjunto de archivos con Tortoise SVN
, haga clic con el botón derecho y arrastre los archivos de destino a su destino y suelte el botón derecho del ratón. El menú emergente tendrá una opción SVN move versioned files here
.
Tenga en cuenta que la carpeta de destino ya debe haberse agregado al repositorio para que aparezca la opción SVN move versioned files here
.
svn move
- Mueve un archivo o directorio.
En el Explorador de Windows, con el botón derecho del ratón, haga clic y arrastre el archivo desde donde está hasta donde lo desee. Al soltar el botón derecho del ratón, verá un menú contextual con opciones como "Archivo SVN Mover versión aquí".
Bajo TortoiseSVN, vea la siguiente página: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-copy.html
Si desea mover los archivos alrededor de y mantener actualizados los archivos csproj, la forma más sencilla es usar un complemento de Visual Studio como AnkhSVN . Eso comprometerá automáticamente tanto la acción de mover (como eliminar + agregar con historial, porque así es como funciona Subversion) como un cambio en el .csproj
Desde la línea de comando, puede escribir svn mv path1 path2
. Esto creará una operación de agregar y eliminar, pero no hay realmente una forma de evitar eso, por lo que sé, en Subversion.
Subversion todavía 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 mezcla (una prioridad más alta) (en 1.5).
Use el comando RENAME de Tortoise y escriba una ruta relativa ("folder/file.ext").
Use el comando svn move
para mover el archivo/carpeta.
Como se mencionó anteriormente, creará los comandos de agregar y eliminar. Puede usar svn move tanto en su copia de trabajo como en la URL del repositorio. Si utiliza su copia de trabajo, los cambios no se confirmarán, deberá realizar una operación por separado.
Si desea mover una URL, deberá proporcionar un mensaje, y los cambios se reflejarán en el repositorio inmediatamente.