web-dev-qa-db-fra.com

SVN - incompatibilité de somme lors de la mise à jour

Lorsque j'essaie de mettre à jour certains fichiers de Subversion, le message d'erreur suivant s'affiche:

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

Pourquoi je reçois ça? Comment puis-je le réparer?

111
Koralek M.

Le moyen le plus simple de résoudre ce problème (si vous n'avez pas beaucoup de modifications) est de copier vos modifications dans un autre répertoire, de supprimer le répertoire dans lequel votre projet est extrait et de le récupérer à nouveau.

Recopiez ensuite vos modifications (ne copiez aucun dossier .svn), validez-les et continuez.

64
sjakubowski

Si vous utilisez SVN 1.7+, une solution de contournement est décrite ici

Juste pour récapituler:

  1. Allez dans le dossier avec le fichier qui pose problème
  2. Exécutez la commande svn update --set-depth empty (note: cela supprimera vos fichiers, alors faites d'abord une copie!)
  3. Exécuter la commande svn update --set-depth infinity
183
jrd

J'avais un problème similaire. Le fournisseur principal était l’antivirus "FortiClient" (antivirus + client VPN). Quand je l'ai désactivé, toutes les mises à jour/toutes les commandes ont été effectuées correctement

6
pawicek

J'ai trouvé un moyen plus simple de résoudre ce problème… .. Vous ne pouvez pas le faire directement à partir d'Eclipse. Pas:

  1. Accédez à la structure de dossiers de l'espace de travail dans Windows
  2. renommer le dossier 
  3. rafraîchir dans Eclipse
  4. Maintenant, le dossier et les fichiers seront supprimés du projet dans Eclipse et apparaîtront sous le nouveau dossier renommé.
  5. Maintenant, essayez l'option "Synchronize with Respository".

Cela restaurera le dossier de base du texte dans .svnfolder. La non-concordance de la somme de contrôle pendant l’erreur de mise à jour n’apparaîtra plus.

5
Divya

Cela m'est arrivé à l'aide du plug-in Eclipse et de la synchronisation. Le fichier à l'origine du problème n'a subi aucune modification locale (et en fait, aucune modification distante depuis ma dernière mise à jour). J'ai choisi "revenir" pour le fichier, sans autre modification des fichiers, et les choses sont revenues à la normale.

1
Jason Merecki

J'ai trouvé une solution très agréable, qui A RÉSOLU mon problème. L'astuce consiste à éditer la base de données svn (wc.db).

La solution est décrite sur cette page: http://www.exchangeconcept.com/2015/01/svn-e155037-previous-operation-has-not-finished-run-cleanup-if-it-was-interrupted/

Si le lien est en panne, il suffit de regarder et de suivre ces instructions:  enter image description here

J'ai utilisé l'outil sqlite de http://sqlitebrowser.org/ .

1
Alexei Bondarev

J'ai eu la même erreur mais pour un fichier. Dans IntelliJ IDEA, j'ai pu copier le fichier, puis accéder au projet, supprimer le fichier en question, puis valider. Ensuite, j'ai créé un nouveau fichier portant le même nom et y ai copié le contenu. Je suppose que vous perdriez l'historique des révisions, mais cela fonctionne.

1
codeanimalsAsGuest

avait un problème similaire sur un serveur mais le répertoire SVN était très volumineux, je ne voulais pas supprimer ni resynchroniser, alors je me suis contenté de copier localement les fichiers, puis de les supprimer. Lorsque la mise à jour a réussi et ajouté des fichiers dans po.

0
rocketdoctor

essayez de supprimer le fichier et supprimez la référence de fichier des entrées de fichier sous le répertoire .svn

0
mocia

J'ai eu une erreur similaire et résolu comme suit:

(Mon 'correctif' est basé sur une hypothèse qui peut ou peut ne pas être correcte car je ne connais pas beaucoup le fonctionnement interne de Subversion, mais cela a définitivement fonctionné pour moi)

Je suppose que .svn\text-base\import.php.svn-base devrait correspondre à la dernière validation.

Lorsque j'ai vérifié le fichier sur lequel l'erreur avait eu lieu, le fichier de base NE correspond PAS à la dernière validation dans le référentiel.

J'ai copié le texte du dernier commit et l'ai sauvegardé dans le dossier .svn en remplaçant le fichier incorrect (copie de sauvegarde au cas où mes hypothèses seraient fausses). (le fichier a été marqué en lecture seule, j'ai effacé cet indicateur, écrasé et mis en lecture seule)

J'ai ensuite pu m'engager avec succès.

0
mendel

1.'update to reversion 'cocher' uniquement cet élément 'dans le répertoire 2.update cocher à nouveau' Fully récursif '

0
sevenpounds

Ma solution était:

  1. Exécuter svn cleanup à partir du système de fichiers
  2. Passer à une autre branche
  3. Résoudre les conflits
  4. Passer à la branche "problématique"
  5. Exécuter le nettoyage à partir de Spring Tool Suite
  6. Exécuter la mise à jour du projet
0
Alessandro C

Si vous avez un collègue qui travaille avec vous:

1) lui demander de renommer le fichier, ce qui cause des problèmes et commit

2) vous update (vous voyez maintenant le fichier avec une somme de contrôle invalide avec un nom différent)

3) renommez son nom d'origine

4) commit (et demandez à votre collègue de update de récupérer le nom du fichier dans son état initial)

Cela a résolu le problème pour moi.

0
Petko Kostov

Pour résoudre ce problème, procédez comme suit:

  1. Ouvrez le fichier d'entrées situé dans le répertoire .svn où vous obtenez l'erreur.
  2. Recherchez l'entrée du fichier générant une erreur et remplacez la valeur attendue par la valeur réelle erronée.
  3. Maintenant synchronisez et essayez de mettre à jour. 

Si cela ne fonctionne toujours pas. Essayez ces. C'est juste une solution de contournement cependant:

  1. Supprimez le fichier de votre système.
  2. Supprimer l'entrée du fichier du fichier d'entrées. (À partir du nom du fichier jusqu'aux caractères spéciaux).
  3. Maintenant, synchronisez et mettez à jour le fichier. 

Cela obtiendra la dernière version du fichier du référentiel et tous les conflits seront résolus.

0
DeepInJava

J'utilise Tortoise SVN, après avoir essayé toutes les solutions de cette page et ne fonctionnant pas,

J'ai finalement sauvegardé le fichier du problème. et utilisez Repo Browser pour supprimer le fichier du problème, puis mettez à jour le dossier local afin que le fichier du dossier local soit supprimé. Recopiez ensuite le fichier de sauvegarde et Add > Commit, afin que je puisse mettre à jour avec succès.

Le seul inconvénient de cette méthode est que l'historique de ce fichier sera supprimé.

0
yu yang Jian