web-dev-qa-db-fra.com

Comment réparer un référentiel endommagé (qui a un répertoire .svn centralisé)?

J'ai récemment mis à niveau mon installation TortoiseSVN vers la version 1.7.1. Cela m'a également obligé à mettre à niveau ma copie de travail. La mise à niveau a supprimé tous les répertoires .svn (sauf un) de tous les sous-répertoires, ne laissant qu'un seul dans la racine.

Maintenant, à l'improviste (bien sûr; je soupçonne mon logiciel antivirus), une erreur se produit lorsque j'essaie par exemple de nettoyer la copie de travail. Je ne peux pas non plus commettre quoi que ce soit.

Le message d'erreur lors du nettoyage est le suivant:

Le nettoyage n'a pas pu traiter les chemins suivants: C:\svn

Impossible d'ouvrir le fichier 'C:\svn.svn\pristine\73\73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base': le système ne trouve pas le fichier spécifié.

J'ai découvert que l'erreur était liée à la présence d'un répertoire dans la copie de travail. Si je le renomme alors tout fonctionne. Quand il est présent, j'obtiens l'erreur. Je l'ai également supprimé et extrait à nouveau. Pas de changement, l'erreur persiste.

Avec les versions précédentes, je pouvais réparer les dommages dans le fichier .svn facilement: supprimez simplement le dossier incriminé et extrayez à nouveau. Je ne peux plus le faire car le répertoire .svn est maintenant centralisé.

Que pourrais-je faire pour réparer ma copie de travail?

18
Heinrich Ulbricht

Impossible d'ouvrir le fichier 'C:\svn.svn\pristine\73\73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base

Je viens d'avoir une erreur similaire et j'ai dû créer ce fichier avec le bloc-notes, puis le nettoyage a fonctionné.

21
Dave Storm

Au lieu de créer un fichier vide (ce que je n’aurais pas osé faire), j’ai procédé à une nouvelle vérification temporaire du répertoire concerné (en spécifiant la même révision ) et copié le fichier manquant du nouveau sous-dossier .svn dans celui du répertoire de travail cassé.

Afin de mieux illustrer cela, dans mon cas, le fichier dont svn se plaignait était .svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base, qui correspond exactement au chemin à trouver dans la nouvelle commande partielle.

4
hans_meine

Nous avons eu le même problème après la mise à niveau de l'ancienne version vers Tortoise SVN 1.7.7.

N'ayant trouvé aucune autre solution, j'ai supprimé la copie de travail locale et l'ai extraite à nouveau. Cela fonctionne bien maintenant.

3
Tomas Chlouba

J'ai eu le problème pendant que j'annulais une fusion. Je ne pouvais effectuer aucune action SVN. Lors du nettoyage du SVN, une erreur s’est produite, indiquant qu’il ne pouvait pas trouver un fichier spécifié, ce qui conduisait à un échec de nettoyage.

J'ai créé un fichier factice avec ce nom exact dans le dossier spécifié et procédé à un nettoyage de SVN.

Ensuite, j'ai pu continuer.

2
user304100

Mon problème était que je devrais reconfigurer tous les projets de mon IDE si je récupérais à partir du référentiel, je ne me souciais pas de sauvegarder les modifications.

J'ai supprimé le répertoire .svn et le référentiel de paiement dans le même répertoire.

Le problème était résolu: je pouvais effectuer toutes les opérations svn et le projet était toujours configuré dans l'EDI

0
Shapoval Sergio

J'ai eu un problème similaire, où il était dit qu'un fichier C:\working_copy\dir\file.xml est introuvable. J'avais supprimé le répertoire dir. Dans mon cas, ajouter simplement un nouveau dossier dir & un fichier file.xml (avec un texte vide) a permis de poursuivre le nettoyage, ce qui m'a permis de remettre à jour correctement la copie de travail.

0
jevon