¿Cómo reparar el repositorio dañado (que tiene un directorio .svn centralizado)?

19

Recientemente actualicé mi instalación de TortoiseSVN a la versión 1.7.1. Esto me obligó a actualizar mi copia de trabajo también. La actualización eliminó todos (excepto uno) de los directorios .svn de todos los subdirectorios dejando solo uno en la raíz.

Ahora, de la nada (por supuesto; sospecho que mi software antivirus) hay un error cuando, por ejemplo, intento limpiar la copia de trabajo. Tampoco soy capaz de cometer nada.

El mensaje de error al limpiar es:

La limpieza no pudo procesar las siguientes rutas: C: \ svn

No se puede abrir el archivo 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base': el sistema no puede encontrar el archivo especificado.

Rastreé el error para que esté relacionado con la presencia de un directorio dentro de la copia de trabajo. Si le cambio el nombre, entonces todo funciona. Cuando está presente me sale el error. También lo eliminé y lo revisé nuevamente. Sin cambios, el error persiste.

Con versiones anteriores pude reparar daños en el .svn fácilmente: simplemente elimine la carpeta ofensiva y vuelva a revisar. Ya no puedo hacer esto porque ahora el directorio .svn está centralizado.

¿Qué podría hacer para reparar mi copia de trabajo?

Heinrich Ulbricht
fuente

Respuestas:

21

No se puede abrir el archivo 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base

Simplemente tuve un error similar y en realidad tuve que hacer ese archivo con el bloc de notas y luego la limpieza funcionó.

Dave Storm
fuente
1
¿Pero es seguro hacerlo? ¿"Svn cleanup" hará que ese archivo no esté vacío nuevamente? (Porque ciertamente fue antes, ¿no?)
hans_meine
Puedo verificar que este método funciona, no estoy seguro de cuál es el resultado / pérdida de crear un archivo tan vacío, pero no crearlo, no me permitió "proceder con la confirmación"
nrathaus
4

En lugar de crear un archivo vacío (que no me atreví a hacer), realicé una nueva comprobación temporal del directorio afectado (especificando la misma revisión) y copié el archivo faltante de la nueva subcarpeta .svn en el directorio de trabajo roto. .

Para ilustrar más esto, en mi caso, el archivo del que se quejó svn fue .svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base, que es exactamente la ruta que se encuentra en el proceso de pago parcial nuevo.

hans_meine
fuente
3

Tuvimos el mismo problema después de actualizar desde la versión anterior a Tortoise SVN 1.7.7.

Como no encontré otra solución, eliminé la copia de trabajo local y la revisé nuevamente. Funciona bien ahora.

Tomás Chlouba
fuente
2

Recibí el problema mientras abortaba una fusión. No pude realizar ninguna acción SVN. Al hacer una limpieza de SVN, se produjo un error de que no puede encontrar un archivo específico que conduzca a un error de limpieza.

Creé un archivo ficticio con ese nombre exacto en la carpeta especificada e hice una limpieza SVN.

Entonces pude continuar.

usuario304100
fuente
0

Tuve un problema similar, donde decía que C:\working_copy\dir\file.xmlno se podía encontrar un archivo . Había borrado el dirdirectorio. En mi caso, simplemente agregar una nueva dircarpeta y file.xmlarchivo (con texto vacío) permitió que continuara la limpieza, luego pude volver a actualizar correctamente la copia de trabajo.

jevon
fuente
0

Mi problema era que tendría que reconfigurar todos los proyectos en mi IDE si salía del repositorio desde cero, no me importaba guardar los cambios.

He eliminado el directorio .svn y el repositorio de pago en el mismo directorio.

El problema se resolvió: pude hacer todas las operaciones de svn y el proyecto todavía estaba configurado en IDE

Sergio Shapoval
fuente