Question

J'ai un accès en lecture au dépôt Subversion à distance et je veux cloner via svnsync. La synchronisation commence ok et bien progresser, mais à la fin je reçois une erreur qui ressemble à:

Transmitting file data ...svnsync: File not found: transaction '12893-qyy', path
 '/project_name/trunk/path/to/file.cpp'

Je peux consulter la sucessfully révision en question, révision précédente et prochaine révision. Tous les fichiers sont en place. J'ai vérifié journal pour le fichier en question -. Dossier de son déplacement dans ce lieu dans la révision précédente

Est-il possible que je peux forcer svnsync à ignorer cette erreur et continuer la synchronisation? Je n'ai pas accès administrateur au référentiel, donc je ne peux pas réparer.

MISE À JOUR: Répondre aux commentaires: j'ai vérifié même client de subversion que l'utilisation du serveur (1.6.6), le dernier stable (1.6.17) et la version bêta (1.7). Tout cela donne exactement la même erreur. En outre, je peux checkout avec succès « cassé » du référentiel:. Dernière révision, révision en question (12893), révision devant elle (12892) et la révision après (12894) sans erreur

MISE À JOUR: Répondre à d'autres commentaires: svn montre journaux que dans la révision 12892 dossier « à » a été déplacé de /repo/other_project/trunk/source_path dans /repo/project_name/trunk/path

Était-ce utile?

La solution

Étant donné que vous pouvez checkout révisions avant et après cela, je suppose que vous n'avez pas la corruption référentiel. svnsync fonctionne par des transactions « rejouant », par opposition à la mise en miroir des données ou quelque chose comme ça. En tant que tel, il peut y avoir des bugs qui l'empêchent de rejouant une transaction. Je suppose que quelque chose qui allouent a déclenché un bug. Vous pouvez exécuter svn log -c 12893 -v pour regarder la révision plus en détail. Je suppose que cela a quelque chose comme un « R'eplace qui est l'origine du problème. Vous pouvez recueillir des informations et l'envoyer à users@subversion.apache.org afin qu'il puisse être analysé et tout va bien fixé.

Voici quelques autres idées:

  • Comment le référentiel source accessible? file: // http: // etc S'il est http: // vous pouvez essayer de changer d'utiliser la bibliothèque HTTP par défaut de Neon à Serf et voir si elle a encore le problème. Vous pouvez le faire en ajoutant --config-option = serveurs: global: http bibliothèque = serf à la commande svnsync lorsque vous l'exécutez. Il vaut la peine d'essayer.

  • Voyez si vous pouvez vider la révision. svnadmin décharge -r12892: 12893 --incremental reposname> dumpfile

  • Si vous pouvez vider la révision, puis chargez vous pouvez charger manuellement dans le référentiel cible en utilisant svnadmin load.

  • Si vous pouvez charger la révision, alors vous pouvez manuellement fixer les propriétés pour svnsync afin qu'il sait qu'il a fait cette révision. svn ps --revprop -r0 svn: sync-dernière fusion-rev 123893 url: // à / miroir

À JOUR:. Le problème a été résolu en utilisant une nouvelle utilité de svnrdump de renversement 1.7 RC2

Autres conseils

Pour ajouter aux réponses ci-dessus, le dernier recours qui a fixé mon problème était d'utiliser la commande svndumpfilter pour exclure les noeuds qui étaient corrompus.

Chaque fois que j'ai essayé de charger la révision spécifique après avoir utilisé svnrdump, je recevais l'erreur suivante;

... svnadmin: E160004: Système de fichiers est corrompu svnadmin: E200014: décalage Checksum alors que la représentation de lecture: prévu: 77ec72e82afddd1cb8d2c63760cf4dbb réelle: f34fb5883dffffec3cd59a69f8a2cb99

Si vous avez créé la décharge de la révision comme rev12892.dmp, alors vous pouvez exclure un chemin, par exemple. "/ Project_name / tronc / chemin" comme suit:

svndumpfilter exclure / project_name / tronc / path pruned_dump_file

Voir la svn Redbook pour plus de détails sur la commande svndumpfilter: http://svnbook.red-bean.com/en/1.7/svn.ref.svndumpfilter.commands.c.exclude.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top