2009-08-19 18 views
32

Duplicar posibles:
How do you remove Subversion control for a folder?
Command line to delete matching files and directories recursivelyExtracción Svn archivos de todos los directorios

Recientemente he convertido mi repositorio CVS a svn usando cvs2svn y recientemente he notado que cada directorio tiene una carpeta oculta llamado .svn. Mi script de compilación actual copia muchos directorios de mis directorios de recursos versionados y termina copiando los archivos .svn. ¿Hay alguna forma de hacer que svn no incluya estos archivos cuando pago o necesito escribir un script para eliminar todos estos archivos .svn? Hay muchos archivos que tienen estos directorios .svn ocultos, así que esto sería un problema a menos que pudiera escribir un script recursivo para hacer esto, pero no lo hago si puedo hacer esto para mi instalador de Windows. ¿Hay alguna manera fácil de evitar que svn ponga este directorio oculto en todas partes de mi proyecto?

+0

Vaya, recogió el equivocado: http://stackoverflow.com/questions/154853/how-do-you-remove-subversion-control-for-a-folder – zzzzBov

Respuesta

28

se puede hacer una cosa que se llama una exportación de SVN para obtener los archivos sin los directorios .svn

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html

+0

Sí, SVN Export eliminará los archivos .svn. Puede hacer un archivo por lotes para ejecutar el comando de exportación desde la línea de comando e incorporarlo en su proceso de compilación. –

+0

mira este enlace me ayudó .... http://cocoabugs.blogspot.com/2010/09/script-to-remove-hidden-svn-folder.html –

+2

esto es genial, pero desafortunadamente a veces alguien te envía un tarball lleno de ellos :( – Eva

4

Esas carpetas se requieren para la subversión cómo trabaja con una copia de trabajo (es decir, en el que hemos hecho un pago y envío).

Una opción sería exportar a otra ubicación. La exportación no tendría las carpetas .svn, y podría ejecutar su script en eso. Documentación: svn export, TortoiseSVN Export

Otra opción sería modificar su secuencia de comandos para ignorar los directorios ocultos o crear una mejor herramienta de compilación.

-1

No sé si los eliminaría, pero tal vez modifiques tu script de compilación para ignorar la copia de ellos sería una buena idea. Utilizo Ant para compilar y construir mi guerra y lo hace ignorando .svn dirs.

+0

Eliminarlos no es una buena idea a menos que desee que esa carpeta NO sea un copia de trabajo más. – crashmstr

5

I posted this yesterday over here, pero aquí es otra vez porque especie de ponerlo en el hilo equivocado de todos modos ...


Tengo algo que debe hacer su día. La fuente original es here.

Esta es una extensión de shell (perfectamente segura) que agregará "Eliminar carpetas SVN" a su menú de clic derecho en Windows. Ejecútelo en cualquier directorio que contenga esos archivos molestos.

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] 
@="Delete SVN Folders" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] 
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \"" 

Para realizar esta parte del script de compilación, copie la llamada a cmd.exe y ejecútelo.

1

svn export es lo que quiere. Le dará una copia limpia del árbol de códigos sin los directorios .svn (tenga en cuenta que esta copia no está bajo control de versión y que los comandos svn no funcionarán en ella una vez que se haya exportado).

Utilizo este método para iniciar el código en los servidores de producción. Nuestro script de construcción toma una exportación del código de bifurcación, tars y gzips, lo carga al servidor correcto y lo descomprime/destraba.

68

No estoy seguro en su caso específico de que quiera eliminar todos esos directorios .svn.Pero si lo hace, aquí es una fiesta de una sola línea para hacer precisamente eso:

find . -name .svn -print0 | xargs -0 rm -r 
+2

antes de ejecutar el comando, asegúrese de ingresar el directorio apropiado, por ejemplo: cd mySVNdirectoryWhereToRemoveTheSubfolders – Camaleo

0

Usted puede echar un vistazo a SVK, que es una capa en la parte superior de la subversión. Una de las ventajas es que los metadatos del repositorio para su copia de trabajo, que normalmente se almacenan en los directorios .svn, se guardan en una única ubicación central, por lo que no tiene el feo problema .svn dir oculto. Es muy lindo.

3

y una versión de PowerShell

ls -Force -Recurse -Filter .svn | rm -Force -Recurse 
+0

A veces uno hereda el código donde esto es simplemente más útil. ¡Gracias! – jray

5

find . -name '.svn' -depth -exec rm -rf '{}' \; -ls

+0

upvote para usuarios de Windows que tienen cygwin instalado. Aún así, me resulta mucho más fácil usar el cuadro de búsqueda de File Explorer. – Roland

0

hallazgo "/ YourFolder" -name ".svn" -exec rm -fdR {} \;

Marque esta link

5

en sistemas Win32/Win64, el siguiente comando debe hacer el trabajo:

del /q /s .svn 
Cuestiones relacionadas