Après de nombreuses commissions heureuses sur mon svn repo, la relation a soudainement mal tourné ... svn a renversé le couvercle et a crié: " La base du texte de la copie de travail est corrompue! "
Qu'est-ce qui aurait pu causer ça? Comment je le répare?
Working copy text base is corrupt
svn: Commit failed (details follow):
svn: Checksum mismatch for '~/blah/.svn/text- base/sumonet.py.svn-base'; expected: '548b9bb4b24bc580ab8694c583b28013', actual: '8b2b3cf4615de3d8520ae4841b3b0a8b'
C'était l'erreur.
svn: E155017: Working copy text base is corrupt
svn: E200014: Checksum mismatch for text base of : '/home/.../exampleFileCorrupted.cpp'
....
SOLUTION CLAIRE QUI A TRAVAILLÉ POUR MOI LISSE:
ATTENTION: Copiez votre fichier dans un autre fichier en dehors de l'environnement SVN.
cp exampleFileCorrupted.cpp ~/Desktop/
puis suivez ci-dessous:
svn rm --force exampleFileCorrupted.cpp
Vous verrez: D exampleFileCorrupted.cpp
Copiez le fichier que vous avez sauvegardé avant le point 1 dans le dossier SVN dans lequel vous vous trouvez avec:
cp ~/Desktop/exampleFileCorrupted.cpp .
(Ne manquez pas le point à la fin qui signifie «copier ici»)
Ajouter à svn with: svn add exampleFileCorrupted.cpp
Vous verrez: A exampleFileCorrupted.cpp
Valider les modifications : svn commit -m "Commit Message"
Faites-moi savoir si cela a aidé.
Cela fonctionne pour moi:
svn rm --keep-local THE_CORRUPTED_FILE
svn add THE_CORRUPTED_FILE
svn ci
Cordialement,
Faites simplement une nouvelle commande distincte et copiez les modifications que vous avez apportées dans cette ancienne copie de travail dans la nouvelle.
Avec les nouvelles versions de Subversion, il n'y a pas de répertoire .svn/text-base/
. Le .svn
est stocké à la racine de travail sous .svn/pristine
et le message d'erreur ressemble à ceci:
Sending README
Transmitting file data .svn: E155017: Commit failed (details follow):
svn: E155017: Working copy text base is corrupt
svn: E200014: Checksum mismatch for text base of '/home/user/tmp/svntest/README':
expected: 1f9167bc01e5bc9bfcb928ff03d6700a
actual: e0a1692ff5cab91e3e3a0d02dabe0251
svn: E200003: Delta source ended unexpectedly
Vous pouvez le réparer en utilisant le script bash à l'adresse https://Gist.github.com/siddhadev/5814802 . Il remplacera le fichier svn-base corrompu par un nouveau.
Le script @siddhadev devrait fonctionner, mais pour ceux qui préfèrent le faire manuellement:
lastworkingrev.txt
sha1sum lastworkingrev.txt
find . -name "SHA1_CHECKSUM.svn-base"
et écrasez-le avec le contenu de lastworkingrev.txt
J'ai eu le même problème, mais aucune des réponses précédentes n'a aidé. Dans mon cas, le référentiel Subversion était à la version 1.6, mais j’avais permis à IntelliJ de passer à la version 1.7. Il n'y avait aucune indication d'incompatibilité de version autre que l'erreur "svn: E200014: Incompatibilité de la somme de contrôle de base". Simplement extraire un nouvel arbre avec la version correcte corrige le problème.
Avait ce problème après avoir filtré mon dump avec https://github.com/jasperlee108/svndumpfilterIN
Correction avec la suppression des sommes de contrôle md5 ...
sed -i '/Text-copy-source-md5/d' eias_only.dmp
Cependant, il peut y avoir des conséquences ...
J'ai tout essayé ci-dessus, le nettoyage ne fonctionne pas. SVN me recommande de commander une nouvelle copie. Mais le projet est trop volumineux, et j’ai modifié trop de codes, la comparaison coûtera beaucoup de temps… C'est la façon dont j'ai résolu le problème à chaque changement conservé.
J'ai appris à ne pas faire confiance à mon répertoire de travail sous contrôle de version. Lorsque je suis prêt à valider, je fais un diff récursif et copie les modifications dans le répertoire extrait. De cette façon, si SVN s'étouffe, tout ce que je fais est rm -Rf la sortie et effectuez une nouvelle commande, puis répétez les commandes de copie.
Je ne suis pas venu ici pour chercher une solution. Je suis venu chercher une raison pour ce comportement floconneux et je n'ai rien trouvé. Cela se produit même lorsque je suis la seule personne à utiliser la branche et à tout faire depuis la ligne de commande, ce en quoi je fais davantage confiance qu'Eclipse ou toute autre interface.
Supprimer la copie existante et reprendre le contrôle, votre problème sera résolu.
Faites une équipe de nettoyage SVN-> Nettoyage.