web-dev-qa-db-fra.com

Svnadmin load from dumpfile provoque une "erreur de fichier introuvable". Aidez-moi?

Donné:

Repository_1 - source

Repository_2 - destination

J'ai créé un fichier de vidage de Repository_1/Folder1 à l'aide de la combinaison de svnadmin et de svndumpfilter.

Lors du chargement à partir du fichier de sauvegarde depuis Repository_1/Folder1 dans Repository_2/Trunk tout va bienMAIS

Lors du chargement à partir de Repository_1/Folder1/Sous-dossier (créé un autre cliché pour cela) dans Repository_2/trunk i, obtenez l'erreur suivante:

svnadmin: File not found: transaction '267-89', path 'trunk/Folder1/Sub-folder'

Quelqu'un peut-il expliquer?

27
Chicago

Il s'avère que cette structure (dossiers vides) dans la destination doit être pré-créée. Donc, Si vous voulez faire ceci:

Lors du chargement depuis Repository_1/Folder1/Sous-dossier (créé un autre dump pour cela) dans Repository_2/trunk

vous devez créer cette structure dans svn

Repository_2/trunk/Folder1

remarque: vous ne devez créer que les parents, pas le dossier lui-même, alors NE CRÉEZ PAS Repository_2/trunk/Folder1/Sub-folder

34
Chicago

Je viens de rencontrer cette erreur, que j'ai attribuée à une mise à niveau récente du serveur et à un cycle svnadmin dump/load. Le problème était que j'avais configuré le référentiel dans un répertoire différent de celui dans lequel il avait été créé.

Sur l'ancien ordinateur, j'utilisais inetd.conf pour exécuter svnserve:

svnserve -r /var/svn/main

et le référentiel était dans/var/svn/main

Cependant, sur la nouvelle machine, j'avais inetd.conf pointant vers /var/svn:

svnserve -r /var/svn

L'ancien serveur avait déjà été emprunté. Par conséquent, lorsque j'essayais de valider, le chemin de destination n'existait pas, car j'avais accidentellement ajouté un autre composant à l'URL. svn://Host/source/trunk est devenu svn://Host/main/source/trunk

J'aurais pu le réparer en déplaçant les répertoires, mais j'ai plutôt choisi de réécrire l'URL de la copie de travail en utilisant svn switch --relocate.

Remarque: un diagnostic rapide pour déterminer s'il s'agit du problème consiste à passer à un répertoire de votre copie de travail, tapez svn info pour obtenir l'URL du référentiel, puis tapez svn ls <myUrl>. Si cela donne une erreur No repository found, alors vous savez que c'est la cause.

1
the_mandrill

vous obtiendrez cette erreur si quelqu'un copiait quelque chose du tronc/dossier1 vers le tronc/dossier1/sous-dossier. étant donné que vous n’avez inclus que trunk/Folder1/Sub-folder dans votre vidage, il ne peut plus trouver le ou les fichiers requis dans trunk/Folder1 et s’arrête avec cette erreur.

pour résoudre ce problème, vous devez vous assurer d'inclure tout ce qui a été la source d'une copie dans le dump.

1
stmax

Comme indiqué dans ce fil , svnrdump fonctionne différemment de svndump.

svndump + svndumpfilter:

  • Vide l'historique complet du référentiel, puis filtre pour les éléments souhaités. Cela prend beaucoup de temps sur les grands référentiels, même si vous ne faites que capturer un sous-arbre minuscule.
  • Produit un fichier de vidage qui est probablement cassé de plusieurs manières, comme la création de fichiers dans des répertoires inexistants ou la copie de fichiers à partir de chemins inexistants.

svnrdump:

  • Produit un fichier de vidage auto-cohérent.
  • Requiert un sous-chemin si vous voulez faire l'équivalent de svndumpfilter include. Par exemple, svnrdump https://server.example.com/svn/repo/branches/1.4 saisira toutes les révisions concernant /branches/1.4.
  • Peut nécessiter un | svndumpfilter include / --drop-all-empty-revs --renumber-revs supplémentaire.

En bout de ligne: svnrdump fonctionnera probablement mieux.

1
Chris Jones

Le chargement de la sauvegarde échoue car la création de trunk/Folder1 a été filtrée par svndumpfilter. Selon cet article de blog , ces étapes sont nécessaires sur le dump:

Vous pouvez créer trunk/Folder1 dans le dump, en modifiant le dump lui-même et en ajoutant à la première révision le bloc suivant:

Node-path: trunk/Folder1
Node-action: add
Node-kind: dir
Prop-content-length: 10
Content-length: 10
PROPS-END

Ce bloc doit être inséré dans les blocs d'accessoires de la première révision.

Ensuite, le vidage peut être chargé avec svnadmin.

0
CharlesB