2012-09-03 21 views
14

Estoy tratando de svn update mi copia de trabajo SVN con TortoiseSVN pero la actualización falla, pidiendo realizar la limpieza primero.prístino archivo svn-base falta

Sin embargo, el svn cleanup también falla al indicar que \.svn\pristine\20\20long-namecbf.svn-base file cannot be found.

Ya he intentado liberar el bloqueo, pero esto tampoco funciona.

¿Alguna idea de cómo debo proceder?

Respuesta

2

Puede usar SmartSVN para restaurar el archivo prístino perdido.
Descárguelo e instálelo. No es gratis, pero 30 días de prueba gratis deberían ser suficientes para reparar su repositorio.
Abra su copia de trabajo en SmartSVN. Para la reparación, seleccione Modificar>Validar área de administración ...
disfrutar!

+0

Agregue cómo, he visto algunas referencias a SmartSVN, pero todas no explican cómo. – bonitzenator

+0

He editado la respuesta como su pedido. – duccom

+0

Gracias duccom, esto tiene mucho más sentido. – bonitzenator

4

Me escapé reemplazando el directorio .svn por el mismo de una copia recién desprotegida. Afortunadamente para mí, la copia local estaba en la misma revisión que el repositorio. No estoy seguro de cuáles serían las implicaciones si no fuera el caso.

26

Este problema:

no puede encontrar el archivo Svn \ prístina \ 24 \ 24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn base

copié un SVN-base desde otro archivo y renombrado esto con 24fd530d4bd82341fb514ab912c9e10adbc4ad89. svn-base. Y realice una operación de limpieza. Después de eso me encontré con otro archivo perdido. Usando la misma manera, y al final solucioné este problema.

Desde una línea de comandos de Windows con SilkSVN instalado:

cd project directory 
svn status 

Esto generará un error. Seleccionar y copiar el texto de directorio y nombre de archivo a continuación, pegar:

echo > .svn\pristine\<paste> 

Por ejemplo:

echo > 24\24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn-base 

Con este conocimiento en la mano, sería bastante trivial para escribir un archivo por lotes que se pueden solucionar estos problemas de forma automática para todo el mundo. El comando svn generará un valor de% ERRORLEVEL% que se puede verificar en caso de error.

+6

Esto me llevó a una solución aún más simple: simplemente cree un archivo vacío con el nombre de archivo dado y ejecute 'svn cleanup'. (Por cierto, esta debería ser la respuesta aceptada). – Csq

1

Para mí, el archivo estaba allí pero tenía (1) anexado al nombre. (Una copia) ff4c7be3da460bb91144d6761cc5743536c983f4 (1) .svn-base

I elimina el "(1)" y la limpieza corrió finas ff4c7be3da460bb91144d6761cc5743536c983f4.SVN-base

5

He resuelto esto

  1. Crear un archivo vacío /workingdirectory/.svn/pristine/da/da39a3ee5e6b4b0d3255bfef95601800afd80009.svn-base

  2. Run SVN limpieza