J'essayais de faire un svn cleanup
parce que je ne peux pas valider les modifications dans ma copie de travail et j'ai l'erreur suivante:
sqllite: l'image du disque de la base de données est mal formée
Que puis-je faire maintenant?
J'ai eu le même problème. Le billet de blog suivant m'a aidé à le résoudre: http://www.polak.ro/svn-e200030-sqlite-database-database-disk-image-is-malformed.html
Vous effectuez une vérification de l’intégrité de la base de données sqlite qui garde la trace du référentiel (/.svn/wc.db):
sqlite3 .svn/wc.db "pragma integrity_check"
Cela devrait signaler des erreurs.
Ensuite, vous pourrez peut-être les nettoyer en faisant:
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
S'il reste des erreurs après cela, vous avez toujours la possibilité d'extraire une nouvelle copie du référentiel dans un dossier temporaire et de copier le dossier .svn de la nouvelle copie vers l'ancien. Ensuite, l'ancienne copie devrait fonctionner à nouveau et vous pouvez supprimer le dossier temporaire.
sqlite3 .svn/wc.db "pragma integrity_check"
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Vous pourrez peut-être vider le contenu de la base de données pouvant être lu dans un fichier de sauvegarde, puis le réduire dans un nouveau fichier de base de données:
sqlite3 .svn/wc.db
sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit
mv .svn/wc.db .svn/wc-corrupt.db
sqlite3 .svn/wc.db
sqlite> .read dump_all.sql
sqlite> .exit
Le nettoyage de SVN n'a pas fonctionné. Le dossier SVN de mon système local a été corrompu. Je viens donc de supprimer le dossier, d'en recréer un nouveau et de le mettre à jour à partir de SVN. Cela a résolu le problème!
J'ai copié le dossier .svn à partir du répertoire de mon homologue et le problème a été résolu.
Après une panne d'électricité, j'ai rencontré l'erreur database disk is is malformed et la commande de nœuds de réindexation suggérée n'a pas résolu tous les problèmes en raison de contraintes violées. La procédure décrite dans http://mail-archives.Apache.org/mod_mbox/Subversion-users/201111.mbox/%[email protected]%3E n'a pas résolu le problème.
Solution dans mon cas:
Cela peut être utile si votre svn checkout d'origine contient de nombreux fichiers modifiés ou non versionnés et que vous ne voulez pas passer à un nouveau svn checkout.
Peut-être, pourrait être une solution:
Maintenant, reconnectez-vous à nouveau:
repositorie
: mine SVN
(autre cas: git, etc.)repositorie
Remarque:
Sur mon cas, j'ai fait une sauvegarde de mes fichiers. (bon retour: P)
Modifier:
Je parle de SVN
plugin sur Eclipse
:)
J'ai résolu mon problème de corruption visuelle svn serveur rep-cache.db.
Il y a deux solutions.
Arrêtez le service Visual SVN Server.
Téléchargez le shell sqllite3.exe à partir du site Web sqllite et copiez-le dans le dossier db du référentiel.
Tapez les commandes suivantes à la commande Invite dans le dossier db du référentiel.
- Première solution -
sqlite3 rep-cache.db
.clone rep-cache-new.db
appuyez sur ctrl + c pour quitter sqllite.
ren rep-cache.db rep-cache-old.db
ren re-cache-new.db rep-cache.db
- 2ème solution -
Supprimer le rep-cache.db
del rep-cache.db
il sera créé automatiquement.
Ne perdez pas votre temps sur checking integrity
et ne supprimez pas les données de la table work queue
car il s’agit là de solutions temporaires, qui vous répondront dans un instant.
Il suffit de faire une autre checkout
et de remplacer le dossier .svn existant par le nouveau. Faites une update
et alors cela devrait aller sans heurts.
J'ai corrigé cela pour une instance qui m'arrivait en supprimant le dossier caché .svn, puis en effectuant une extraction sur le dossier avec la même URL.
Cela n'a pas écrasé aucun de mes fichiers modifiés, mais simplement mis à jour tous les fichiers existants au lieu de récupérer de nouvelles copies du serveur.
Au fil de mes recherches, j'ai trouvé 2 solutions viables.
Si vous utilisez n’importe quel type de connexion, ssh, samba, monter, déconnecter/démonter et reconnecter/remonter. Essayez encore, cela a souvent résolu le problème pour moi. Après cela, vous pouvez nettoyer svn ou continuer à travailler normalement (en fonction de la date d'apparition du problème). Le redémarrage de mon ordinateur a également résolu le problème une fois ... oui c'est idiot je sais!
Parfois, tout ce que vous avez à faire est de rm -rf vos fichiers (ou, si vous ne connaissez pas bien le terme, supprimez simplement votre dossier svn), et revérifiez à nouveau votre référentiel svn. Veuillez noter que cela ne résout pas toujours le problème et que vous pouvez également avoir des modifications que vous ne voulez pas perdre. C'est pourquoi je l'utilise comme deuxième option.
J'espère que cela vous aide les gars!
cela fonctionne pour moi!
Avez-vous vu ce post sur le site Subversion? Vous pouvez également potentiellement essayer de valider et de "réparer" directement la base de données comme décrit ici . (Notez que je ne suis pas un expert, je viens de faire une recherche rapide sur Google. Peut-être pas du tout lié à vos problèmes).
Personnellement, j’essayerais de consulter à nouveau le dépôt et de réappliquer vos modifications. Vous ne savez pas si cela est possible dans votre cas?
Si vous installez le SVN Tortoise, accédez au gestionnaire de tâches et arrêtez-le ..__ Ensuite, essayez de supprimer le dossier. ça va marcher
pas besoin de s'inquiéter pour un verrou de répertoire les gars.
Il suffit de faire ceci: Si sqllite3 n’est pas installé, tapez la commande ci-dessous,
>Sudo apt-get install sqlite3
Ouvrez la base de données SVN en tapant cette commande,
>sqlite3 .svn/wc.db
Maintenant, il vous suffit de supprimer les entrées de verrouillage de SVN DB.
sqlite> select * from wc_lock; 1|-1 sqlite> delete from wc_lock; sqlite> select * from wc_lock; sqlite> .q
Processus terminé. Vous pouvez travailler sur votre référentiel SVN, commettre, mettre à jour, ajouter, supprimer des opérations sans problème.
:-)