2008-09-19 40 views
12

No es la primera vez que hago accidentalmente "svn switch" desde algún lugar debajo de la raíz de mi proyecto. Esto cambia ese subdirectorio solamente, pero ¿cómo puedo deshacer esto?¿Cómo deshago "svn switch" en un subdirectorio?

Si intento de cambiar el subdirectorio de nuevo a la rama original que sale:

"svn: Directory 'subdir\_svn' containing working copy admin area is missing" 

actualización: Tengo cambios en el subdirectorio, por lo que no quiero hacer un borrado.

A corto plazo, lo solucioné volviendo a aplicar los cambios, pero estaba buscando la forma de que Subversion vuelva a cambiar al lugar de donde vengo ... ¿o esta es una característica que falta?

Respuesta

6

Hack rápido: elimine el directorio, suba un nivel y ejecute svn update.

+0

Tengo cambios en mi sandbox cambiado, por lo que no puedo eliminar el subdirectorio ... – fiddlesticks

+0

Puede hacer un parche, hacer rm/svn y volver a aplicar el parche. –

+4

odio svn. Tanto. Me lleva un día cambiar, actualizar, masajear, eliminar y luego cambiar algunas veces más para obtener un cambio limpio. –

-2
svn revert <dir> 

O, sí, bórrelo y tome otra copia.

+1

'svn revert

' no revierte el modificador. Revierte las modificaciones locales (si las hay), pero aún mantiene el contenido del conmutador substree. – Eloff

5

Sin saber exactamente cómo se hizo el cambio y cómo es el diseño de su directorio y repositorio, es difícil decir qué salió mal en su caso.

No hay forma de "revertir" realmente un interruptor. Generalmente, el interruptor svn puede deshacerse mediante un cambio a la ubicación original, es decir, cuando la ubicación original es svn: // url/to/orig/dir, entonces debería funcionar lo siguiente:

Cambiar un subdirectorio a una parte diferente del repositorio

svn switch svn://path/to/switched/dir/ subdir 

... y de ponerlo de nuevo

svn switch svn://url/to/orig/dir subdir 

En su caso suena como si se trató de cambiar un directorio que no es parte de su copia de trabajo.

+0

Esto es básicamente lo que probé. El error que obtuve está en la pregunta ... – fiddlesticks

1

Lo solucioné marcando los cambios en el directorio cambiado, eliminando los archivos .svn y los archivos extraviados, luego usando svn checkout <rootUrl> seguido de svn update -r HEAD --force.

No creo que haya una manera limpia de hacerlo.

0

si los últimos cambios son sólo el interruptor entonces,

clic derecho sobre el directorio padre común, tortuga svn-> Ir a SVN registros. Haga clic derecho en la versión antes de SVN Switch y seleccione Revertir a esta revisión. .

0

Parece que funciona para ejecutar otro interruptor de nuevo a la correctamente la ruta del directorio que esté en Es decir, si se ejecutó:

svn switch file:///srv/svn/someproject/branch/27 

mientras estabas en someproject/subdirectorio, a continuación, ejecuta

svn switch file:///srv/svn/someproject/branch/26/subdir 

y luego ejecuta el interruptor original desde el lugar correcto.

Esto parece restaurar el orden.

Cuestiones relacionadas