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?
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.
Si vous utilisez SVN 1.7+, une solution de contournement est décrite ici .
Juste pour récapituler:
svn update --set-depth empty
(note: cela supprimera vos fichiers, alors faites d'abord une copie!)svn update --set-depth infinity
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
J'ai trouvé un moyen plus simple de résoudre ce problème… .. Vous ne pouvez pas le faire directement à partir d'Eclipse. Pas:
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.
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.
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:
J'ai utilisé l'outil sqlite de http://sqlitebrowser.org/ .
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.
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.
essayez de supprimer le fichier et supprimez la référence de fichier des entrées de fichier sous le répertoire .svn
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.
1.'update to reversion 'cocher' uniquement cet élément 'dans le répertoire 2.update cocher à nouveau' Fully récursif '
Ma solution était:
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.
Pour résoudre ce problème, procédez comme suit:
Si cela ne fonctionne toujours pas. Essayez ces. C'est juste une solution de contournement cependant:
Cela obtiendra la dernière version du fichier du référentiel et tous les conflits seront résolus.
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é.