Comunidad de diseño web y desarrollo en internet

Borrar carpetas .svn en Windows, Linux y OSX

Cuando se empieza a usar Subversion (SVN), para tener un control de los archivos de nuestro proyectos, en ocasiones usaremos clases, librerías, frameworks o carpetas de un repositorio de un tercero. Cuando unimos estas carpetas nuevas, a nuestro repositorio cliente, esta no los interpreta bien porque ya vienen con otras carpetas .SVN con archivos específicos para su repositorio de origen. La solución aquí es eliminar todas las carpetas .SVN de lo que queramos implementar para que nuestro repositorio cliente lo interprete como nuevos archivos y podamos agregarlas al proyecto.

Por consola nos ubicaremos en la carpeta donde están nuestros nuevos archivos/carpetas y ejecutaremos alguno de los siguientes scripts dependiendo del S.O. :

Código :

# Windows
FOR /r "." %f IN (.svn) DO @RD /s /q "%f"

# Linux / OSX
rm -rf `find . -type d -name .svn`

Con esto se eliminarán las carpetas .SVN de forma recursiva. Pero escribir toda esa línea no es muy cómodo que digamos en nuestro trabajo del día a día, por eso vamos a automatizar este proceso.

En Windows


Crearemos un archivo que llamaremos "borrar carpetas SVN.reg" y contendrá lo siguiente:

Código :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\DeleteSVNFolders]
@="Borrar carpetas SVN"

[HKEY_CLASSES_ROOT\Directory\shell\DeleteSVNFolders\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && FOR /r \"%1\" %%f IN (.svn) DO @RD /s /q \"%%f\" \""

Le damos doble click a este archivo y nos preguntará si queremos agregarlo al Registro, le decimos que Sí.
Ahora tendrémos una opción más en nuestro menú contextual al dar click derecho sobre cualquier carpeta que ejecutará nuestro script.

En Linux / Mac OS X


Extraido desde: Any Example
Crearemos un archivo en /usr/bin/ (o en cualquier otra carpeta de binarios que sea accesible), lo llamaremos "csvn" y contendrá lo siguiente:

Código :

#!/bin/sh
echo "recursively removing .svn folders from"
pwd
rm -rf `find . -type d -name .svn`

Ahora podremos usarlo de la forma que comentamos anteriormente pero en vez de escribir toda la línea de código escribiremos sólo "csvn" (Recuerde estar sobre la ruta en la que quiere eliminar las carpetas .SVN).
Nota: No es recomendable ejecutar 'csvn' como root.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate