tutorial - SVN deshacer eliminar antes de confirmar
svn tutorial español (7)
Si elimina un directorio de una copia de trabajo de SVN, pero aún no se ha comprometido, no es obvio cómo recuperarlo. Google incluso sugiere "svn undo delete before commit" como una consulta común cuando escribe "svn undo d", pero los resultados de la búsqueda no son útiles.
editar: me gustaría una solución que funcione en subversión 1.4.4
1) hacer
svn revert . --recursive
2) analizar salida para errores como
"Failed to revert ''dir1/dir2'' -- try updating instead."
3) llame a svn para cada uno de los directorios de error:
svn up dir1/dir2
La solución más simple que pude encontrar fue eliminar el directorio padre de la copia de trabajo (con rm -rf, no svn delete), y luego ejecutar svn update en el abuelo. Por ejemplo, si eliminó a / b / c, rm -rf a / b, cd a, svn up. Eso trae todo de vuelta. Por supuesto, esta es solo una buena solución si no tiene otros cambios no comprometidos en el directorio principal que desea conservar.
Espero que esta página esté en la parte superior de los resultados la próxima vez que googlee esta pregunta. Sería incluso mejor si alguien sugiriera un método más limpio, por supuesto.
Lo que funcionó para mí es
svn revert --depth infinity deletedDir
Para convertirlo en un trazador de líneas uno puede intentar algo como:
svn status | cut -d '' '' -f 8 | xargs svn revert
Puede eliminar la carpeta y actualizar el directorio padre antes de confirmar:
rm -r some_dir
svn update some_dir_parent
Realice una operación de reversión (recursiva) desde un nivel superior al directorio que eliminó.
svn revert deletedDirectory
Aquí está la documentación para el comando svn revert
.
EDITAR
Si deletedDirectory
se eliminó utilizando rmdir
y no svn rm
, tendrá que hacer
svn update deletedDirectory
en lugar.