svn - create - ¿Cómo restaurar una carpeta eliminada localmente?
svn branch (5)
Eliminar localmente un archivo seguido de la actualización svn restaura la copia local de ese archivo. Sin embargo, esto no parece aplicarse a las carpetas. ¿Hay alguna manera de hacer que funcione para las carpetas también?
EDIT: Esto es lo que la salida de la consola se ve como:
C:/svn/Google Project Hosting/xulwin/xulrunnersamples>rmdir /S /Q treeview
C:/svn/Google Project Hosting/xulwin/xulrunnersamples>svn up
D treeview
Updated to revision 50.
EDIT2: He usado svn durante más de dos años y nunca antes había tenido este error. Pero no cambié ninguna configuración. Lo único en lo que puedo pensar es que hoy he creado un repositorio local con Tortoise SVN en mi disco duro externo para hacer copias de seguridad de algunas cosas antiguas no relacionadas. Pero esa no debería ser la causa del problema porque el comportamiento se produce tanto en la copia local de este repositorio local como en mi código de Google Project Hosting.
EDIT3: WTF De repente ya no puedo reproducir el error. Todo funciona como debería ahora. Pero no cambié nada.
EDIT4: en EDIT1 el archivo parece estar marcado como eliminado, pero no es así porque el comando svn commit no hizo nada. Tampoco la lista de modificaciones de Tortoise Check para nada.
Nota: cuando el problema persiste, una actualización totalmente recursiva restaura la carpeta.
Me encontré con este problema hoy con svn 1.5.6. svn up --force the_dir_path
arregló para mí.
Para recrear:
$ svn up
Updated to revision X.
$ rm -rf the_dir_path
$ svn up
D the_dir_path
Updated to revision X.
$ svn up
Updated to revision X.
$ svn up --force the_dir_path
A ....
A ....
Updated to revision X.
Probablemente desee usar el comando svn revert en lugar de pasar por el proceso de eliminar elementos y luego actualizarlos para revertirlos. Use el interruptor -R para revertir archivos / directorios recursivamente.
La información de ayuda de svn para revertir es la siguiente
revert: Restore pristine working copy file (undo most local edits).
usage: revert PATH...
Note: this subcommand does not require network access, and resolves
any conflicted states. However, it does not restore removed directories.
Valid options:
--targets ARG : pass contents of file ARG as additional args
-R [--recursive] : descend recursively, same as --depth=infinity
--depth ARG : limit operation by depth ARG (''empty'', ''files'',
''immediates'', or ''infinity'')
-q [--quiet] : print nothing, or only summary information
--changelist ARG : operate only on members of changelist ARG
[aliases: --cl]
Global options:
--username ARG : specify a username ARG
--password ARG : specify a password ARG
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting
--trust-server-cert : accept unknown SSL server certificates without
prompting (but only with ''--non-interactive'')
--config-dir ARG : read user configuration files from directory ARG
--config-option ARG : set user configuration option in the format:
FILE:SECTION:OPTION=[VALUE]
For example:
servers:global:http-library=serf
Yo uso para el comando de carpeta borrado accidentalmente
ACTUALIZACIÓN SVN
en la carpeta principal
use svn revert (-R) foldername
para recuperarlo. lo ha eliminado usando svn rm
y svn up
no lo volverá a crear, porque todavía está marcado como eliminado
svn status|grep ^D|^Ct -c9-|xargs -n1 svn revert