SVN: no coincide la suma de comprobación durante la actualización


122

Cuando intento actualizar algunos archivos de Subversion, aparece el error:

org.tigris.subversion.javahl.ClientException: 
Checksum mismatch while updating 'D:\WWW\Project\\.svn\text-base\import.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'

¿Por qué obtengo esto? ¿Cómo puedo arreglarlo?

Respuestas:


70

La forma más fácil de solucionarlo (si no tiene muchos cambios) es copiar sus cambios a otro directorio, eliminar el directorio donde se desprotegió su proyecto y volver a verificar el proyecto.

A continuación, vuelva a copiar los cambios (no copie ninguna carpeta .svn), confirme y continúe.


9
Acabo de eliminar la carpeta donde estaba un archivo problemático y actualicé todo el proyecto. Ahora parece estar bien.
Koralek M.

+1 La otra alternativa que encontré me dejó pirateando la base de datos svn, mucho más fácil
SeanDowney

@SeanDowney, ¿cómo se hace?
arvindwill

@arvindwill Lo siento, no fui muy claro en mi comentario, este método es mucho más fácil. Aquí está la alternativa aterradora: maymay.net/blog/2008/06/17/…
SeanDowney

2
Esta no es una solución específica en absoluto. Siempre puede eliminar todos sus datos locales y comenzar con una copia nueva del repositorio.
tim

197

En caso de que usted está usando SVN 1.7+ hay una solución descrita aquí .

Solo para recapitular:

  1. Vaya a la carpeta con el archivo que causa problemas
  2. Ejecutar comando svn update --set-depth empty (nota: esto eliminará sus archivos, ¡así que haga una copia primero!)
  3. Ejecutar comando svn update --set-depth infinity

17
Si bien esto funcionó para mí, tenga en cuenta que "svn update --set-depth empty" eliminará todo de esa ruta, así que haga una copia primero
tristanbailey

3
Esto funcionó muy bien para arreglar un repositorio gigante en una ubicación remota. Si bien hacer una nueva compra hubiera funcionado, habría tomado más de una hora; esto tomó minutos.
Brian Gillespie

hola, he estado usando window y tortoisesvn como cliente svn. Estaba probando su solución. pero todavía muestra el isse
Amit Bera

Acabo de reemplazar el directorio .svn del nuevo repositorio al antiguo, funcionó :)
harishkumar329

Esto funcionó muy bien para mí, ¡gracias! Vale la pena señalar que el punto n. ° 1 es profundizar en la carpeta (o archivo) real que está causando el problema. Entonces no tienes que actualizar mucho. Tenía una carpeta con unas pocas docenas de archivos que usé Tortoise "Actualizar a-> solo este elemento" en la carpeta y luego "Actualizar a-> totalmente recursivo" para recuperarlo todo. ¡Aún así, todos deben tener en cuenta que esto elimina los archivos de esa carpeta! En un enlace VPN lento con un repositorio de muchos gigabytes y profundidades de conjunto finamente ajustadas, la solución "estándar" era simplemente inútil.
dash-tom-bang

6

Tuve un problema similar. El principal proveedor fue el antivirus "FortiClient" (antivirus + VPN CLient). Cuando lo desactivé, todas las actualizaciones / compras se realizaron correctamente


1
Esta es la única respuesta que resolvió mi problema. Nunca pude pensar en esto. ¡Gracias!
hora:

5

Encontré una forma más sencilla de solucionar este problema. No puede hacer esto directamente desde eclipse. Pasos:

  1. Navegar a la estructura de carpetas del espacio de trabajo en Windows
  2. cambiar el nombre de la carpeta
  3. refrescarse en eclipse
  4. Ahora la carpeta y los archivos se eliminarán del proyecto en eclipse y aparecerán en la nueva carpeta renombrada
  5. Ahora pruebe la opción "Sincronizar con el repositorio".

Esto restaurará la carpeta base de texto en .svnfolder. La discrepancia en la suma de comprobación al actualizar el error no aparecerá más.


1

Esto me sucedió usando el complemento Eclipse y sincronizándome. El archivo que causa el problema no tuvo cambios locales (y de hecho no hubo cambios remotos desde mi última actualización). Elegí "revertir" para el archivo, sin otras modificaciones a los archivos, y todo volvió a la normalidad.


1

Tuve el mismo error pero para un archivo. En IntelliJ IDEA pude hacer una copia del archivo, luego entrar en el proyecto y eliminar el archivo en cuestión, luego confirmar con éxito. Luego, hice un nuevo archivo con el mismo nombre y copié el contenido de nuevo en él. Supongo que perdería el historial de revisiones, pero funciona.


1

Si tiene un colega trabajando con usted:

1) pídale que cambie el nombre del archivo que causa problemas y commit

2) usted update(ahora ve el archivo con suma de comprobación no válida con un nombre diferente)

3) cámbiale el nombre a su nombre original

4) commit(y pídale a su colega que updaterecupere el nombre del archivo en su estado inicial)

Esto resolvió mi problema.



1

Estoy usando Tortoise SVN, después de probar todas las soluciones en esta página y no funciona,

Finalmente hago una copia de seguridad del archivo del problema. y use Repo Browsereliminar el archivo problemático que contiene, luego actualice la carpeta local para que se elimine el archivo en la carpeta local. Luego copie de nuevo el archivo de respaldo y Add > Commitluego puedo actualizar con éxito.

La única desventaja de este método es que se eliminará el historial de este archivo.


0

Para resolver esto, siga los siguientes pasos:

  1. Abra el archivo de entradas ubicado en el directorio .svn donde recibe el error.
  2. Busque la entrada para el archivo que da error y reemplace el valor esperado con el valor real en error.
  3. Ahora sincronice e intente actualizar.

Si todavía no funciona. Prueba estos. Sin embargo, es solo una solución:

  1. Elimina el archivo de tu sistema.
  2. Elimina la entrada del archivo del archivo de entradas. (Desde el nombre del archivo hasta los caracteres especiales).
  3. Ahora sincronice y actualice el archivo.

Esto obtendrá la última versión del archivo del repositorio y se resolverán todos los conflictos.


0

Tuve un problema similar en un servidor, pero el directorio SVN era muy grande, no quería eliminar y resincronizar, así que hice una copia de los archivos localmente y luego los eliminé. Cuando la actualización se realizó correctamente y se agregaron archivos nuevamente en formato.


0

intente eliminar el archivo y elimine la referencia del archivo de las entradas del archivo en el directorio .svn


0

Tuve un error similar y lo solucioné de la siguiente manera:

(Mi 'solución' se basa en una suposición que puede ser correcta o no, ya que no sé mucho sobre cómo funciona la subversión internamente, pero definitivamente funcionó para mí)

Supongo que se espera que .svn \ text-base \ import.php.svn-base coincida con la última confirmación.

Cuando verifiqué el archivo en el que estaba teniendo el error, el archivo base NO coincidía con la última confirmación en el repositorio.

Copié el texto de la última confirmación y lo guardé en la carpeta .svn, reemplazando el archivo incorrecto (hice una copia de seguridad en caso de que mis suposiciones fueran incorrectas). (el archivo se marcó como de solo lectura, borré esa marca, lo sobrescribí y lo puse de nuevo en solo lectura)

Entonces pude comprometerme con éxito.


0

Mi solucion fue:

  1. Ejecute la limpieza de svn desde el sistema de archivos
  2. Cambiar a otra rama
  3. Resolver conflictos
  4. Cambiar a la rama "problemática"
  5. Ejecute la limpieza desde Spring Tool Suite
  6. Ejecutar actualización del proyecto

0

1.'actualizar para reversión 'marque' solo este elemento 'en el directorio 2.actualizar de nuevo marque' Completamente recursivo '

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.