varios una todos script repositorio por para los linea fecha eliminar consola comandos carpeta borrar archivos svn command-line file recursion dos

una - svn eliminar archivos del repositorio



LĂ­nea de comando para eliminar archivos y directorios coincidentes recursivamente (6)

¿Cómo puedo eliminar recursivamente todos los archivos y directorios que coinciden con un determinado patrón? por ejemplo, eliminar todos los directorios ".svn" y los archivos que contienen?

(Tristemente solo DOS)


¿Es este Unix o Windows? En Unix, una solución fácil es

find . -name ''.svn'' -type d | xargs rm -rf

Esto busca recursivamente para todos los directorios (-type d) en la jerarquía comenzando en "." (directorio actual), y encuentra aquellos cuyo nombre es ''.svn''; la lista de los directorios encontrados se envía a rm -rf para su eliminación.

Si quieres probarlo, prueba

find . -name ''.svn'' -type d | xargs echo

Esto debería proporcionarle una lista de todos los directorios que serían eliminados recursivamente.


Algo como esto puede hacer el truco, pero por supuesto ¡ten cuidado!

find . -name ".svn" -exec rm -rf {} /;

Intenta algo así primero para hacer una carrera en seco:

find . -name ".*" -exec echo {} /;

Tenga en cuenta que las llaves vacías se completan con los nombres de los archivos y el punto y coma escapado finaliza el comando que se ejecuta (comenzando después del "-exec").


En * nix o Cygwin:

find -name .svn -print0 | xargs -0 rm -rf


Si desea copiarlo sin exportar y eliminar .svn de los proyectos, debe usar la opción / EXCLUDE de XCOPY.

Me gusta esto:

xcopy /S/Q/EXCLUDE:svn.excludelist [path_from] [path_to/]

Observe la "/" (barra invertida) en [path_to]. Determina que es un directorio de salida, por lo tanto, xcopy no cuestionará si se trata de un archivo o un directorio.

El svn.excludelist es un archivo de texto que contiene los patrones para ignorar en la copia separada por línea.

Por ejemplo:

.svn .svn/ /.svn/ .obj .o .lib /src/

Y así...


Si sus archivos están en subversión, hacer una exportación desde el repositorio le dará un árbol de directorios con los archivos .svn y cualquier otro fragmento eliminado.


Ya que está buscando una solución DOS, la publicación de la semana pasada fue casi idéntica y el consenso fue:

¿Herramienta de línea de comandos para eliminar la carpeta con un nombre especificado recursivamente en Windows?

para / d / r. % d in (.svn) do @if existe "% d" rd / s / q "% d"

o

para / f "usebackq"% d in ("dir .svn / ad / b / s") do rd / s / q "% d"

En realidad, SVN también le brinda la opción de exportar un directorio de trabajo sin los directorios .svn / _svn.

Pensamientos posteriores, tres años después: creo que la razón por la que las personas terminan necesitando eliminar de forma recursiva las carpetas .svn / _svn es porque han copiado directamente su copia de trabajo local a una nueva ubicación para hacer una comparación de carpetas de su versión modificada en comparación a una exportación limpia, es decir, después de que algo sale mal con la copia de trabajo local modificada. (Al menos es por eso que lo he necesitado. Definitivamente es más fácil / más rápido usar ''svn export'' cuando eso es posible).