3 votes

SVN Corrompu, besoin de déplacer avec l'historique

Nous avons rencontré un problème avec notre dépôt svn, il contient tout donc est extrêmement important.

Lorsque nous avons effectué un vidage, nous avons reçu le message d'erreur

svnadmin: E200002: Hash sérialisé mal formé

Cela nous empêche de réaliser un vidage et de déplacer notre contenu, cela a également échoué lors d'une exportation svn.

Nous avons constaté qu'une des révisions est corrompue, y a-t-il un moyen de réparer un dépôt car nous devons le déplacer.

1voto

voxa Points 21

Cela a fonctionné pour moi. Je viens de réparer le fichier corrompu db/revprops/19. 19 ici est la version du commit corrompu. Vous pouvez voir quel commit est corrompu en faisant svn log.

Ce fichier devrait ressembler à ceci:

K 10
svn:author
V 5
roman
K 8
svn:date
V 27
2010-06-05T16:53:51.953072Z
K 7
svn:log
V 0

END

J'ai dû changer cela

K 6
svn:loo

à ceci:

K 7
svn:log

(7 ici montre la longueur de la ligne suivante)

0voto

JonathanS Points 11

Avez-vous des sauvegardes ou des miroirs à partir desquels vous pouvez obtenir cette révision ?

J'ai en fait eu exactement cette erreur aujourd'hui avec une révision corrompue 0 sur l'un de mes miroirs que j'ai pu corriger en copiant les revprops (le fichier corrompu) à partir d'un autre miroir. Cela s'est bien passé et je n'ai rencontré aucun problème par la suite.

Cette méthode pourrait ne pas être recommandée, donc l'utilisateur doit être vigilant. Sauvegardes, sauvegardes, sauvegardes.

0voto

Tod Hagan Points 81

Nous avons réussi à résoudre ce problème en réalisant une sauvegarde svn de chaque côté de la révision corrompue, puis en fusionnant les deux fichiers ensemble en utilisant cat ou type en fonction de la plateforme que vous utilisez, puis en important cela dans un nouveau dépôt.

Après avoir fait cela, j'ai effectué une vérification et elle s'est terminée jusqu'au bout, de plus, toute l'historique des révisions est maintenant visible alors qu'auparavant il ne pouvait pas dépasser le fichier de révision corrompu.

-1voto

dyomas Points 109

Après plusieurs opérations de sauvegarde/restauration manuelles, mon référentiel a commencé à donner la même erreur. Je vérifie les dernières révisions à la racine du référentiel et je détecte qu'un des fichiers du répertoire db/revs/ est placé dans le répertoire db/revprops/ (ces fichiers sont très différents en taille, donc je le remarque rapidement)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X