Si tengo una copia de trabajo de un repositorio de Subversion, ¿hay alguna forma de eliminar todos los archivos no versionados o ignorados en esa copia de trabajo con un solo comando o herramienta? Básicamente, estoy buscando el análogo SVN para git clean
.
Una línea de comando o una solución GUI (para TortoiseSVN) sería aceptable.
svn
tortoisesvn
ignore
Nick Meyer
fuente
fuente
Respuestas:
Usando TortoiseSVN:
fuente
svn cleanup --remove-unversioned --remove-ignored .
Esto tiene las siguientes características:
--xml
opción y analizar la salida xml resultante)svn status
imprime otros caracteres de estado antes del nombre del archivo (que no debería porque los archivos no se rastrean, pero por si acaso ...)Yo uso un script de shell llamado
svnclean
que contiene lo siguiente:fuente
IFS
volver a cambiar a lo que era antes. Cuando lo hagaVARNAME=value command
, la asignación devalue
toVARNAME
solo se aplica durante la ejecución decommand
(con algunas excepciones que no se aplican aread
). Consulte la especificación POSIX y este informe de error POSIX para obtener más detalles.Sé que esto es antiguo, pero en caso de que alguien más se encuentre con él, las versiones más nuevas (1.9 o posteriores) de soporte svn
--remove-unversioned
, por ejemplosvn cleanup . --remove-unversioned
.https://subversion.apache.org/docs/release-notes/1.9.html#svn-cleanup-options
fuente
svn cleanup . --remove-ignored
Este oneliner puede ayudarlo a:
Úselo con cuidado!
fuente
svn status --no-ignore
para capturar bien los archivos ignorados.Modificando las respuestas de Yanal-Yves Fargialla y gimpf usando Powershell (pero no se le permite comentar sobre la publicación original de Stackoverflow):
Esto agrega el quilate ("^") para especificar el inicio de la línea, evitando hacer coincidir todos los archivos que contienen la letra "i". Agregue también los indicadores de -recurse y -force a rm para que este comando no sea interactivo y pueda utilizarse en un script.
fuente
Muchas cosas en SVN se pueden hacer de diferentes maneras, como lo demuestran las variadas respuestas de la línea de comandos que se proporcionan aquí. Con el advenimiento de la versión 1.7, hay otra técnica para TortoiseSVN que, de hecho, proporciona una resolución de grano más fina que la respuesta de Stefan, permitiéndole seleccionar archivos no versionados por separado de los archivos ignorados. Simplemente seleccione
TortoiseSvn >> Clean up...
para abrir este diálogo.fuente
Con powershell:
Desde la línea de comando:
fuente
-match '[\?i]' -replace '^.{8}'
lugar, recomendaría usar , que funciona correctamente incluso si un nombre de archivo comienza con un espacio en blanco, y también elimina los archivos ignorados.code
@ (svn status --no-ignore) -match '[\? I]' -replace '^. {8}' | rm `. Lo descubrí con la ayuda de esta publicaciónpowershell -Command "&{(svn status --no-ignore) -match '[\?i]' -replace '^.{8}' | remove-item -force -recurse}"
Este oneliner funciona para mí (basado en la respuesta de Richard Hansen, que sorprendentemente no funcionó para archivos que contienen espacios):
fuente
-fr
alrm
comando: svn status --no-ignore | grep '^ [I?]' | corte -c 9- | xargs -d "\ n" -I {} rm -fr {}Usando TortoiseSVN:
No es realmente una solución agradable y limpia, pero es la forma más rápida que conozco (en Windows).
Gracias a pkh por el consejo con los archivos ignorados.
fuente
Esto es similar a otras respuestas, pero en realidad obtiene archivos ignorados (tenga en cuenta la 'I' en los RE):
fuente
Alguien dijo que no puedes hacerlo desde la línea de comandos de Windows.
Toro.
Lo hace en una línea y no requiere una sola herramienta GNU. :)
fuente
for /f "tokens=2 delims= " %%I IN ('svn st --no-ignore ^| findstr /R "^[I?]"') DO (DEL /S /F /Q /A:H "%%I" & rmdir /S /Q "%%I")
%%
over%
no puede eliminarlos solo con la línea de comando SVN (aunque no estoy seguro acerca de las herramientas GUI) si está bajo el sistema Linux, esto podría ayudar:
http://www.guyrutenberg.com/2008/01/18/delete-unversioned-files-under-svn/
El otro método (brutal) es confirmar los cambios, eliminar todo de la carpeta y volver a pagar.
fuente