225 votes

Erreur SVN - Pas une copie de travail

Récemment, notre serveur svn a été changé et nous avons fait un changement de svn.

Comme la copie de travail avait une quantité énorme de ressources non versionnées, la copie de travail a été verrouillée et nous avons commencé à changer de dossier par dossier pour tous les dossiers sous svn, ce qui fonctionne parfaitement bien.

Mais au niveau le plus élevé du référentiel, lorsque j'essaie de mettre à jour des fichiers, j'obtiens le message suivant svn : Copie de travail '.' verrouillée L'erreur et le nettoyage n'aident pas non plus. Lorsque je fais le nettoyage, j'obtiens des erreurs comme celles-ci - svn : 'content' n'est pas un répertoire de copie de travail

La sortie fraîche n'est PAS du tout une option. Existe-t-il d'autres moyens de nettoyer et de libérer les serrures et de procéder à l'échange complet ?

EDIT : Le dernier paragraphe de la réponse de JesperE

Si vous obtenez un "not a working copy" lorsque vous en faisant un "svn cleanup" récursif, je pense que supposition est que vous avez un répertoire qui devrait être une copie de travail (i.e. le répertoire .svn au premier niveau le dit), mais il lui manque son propre répertoire .svn. Dans ce cas, vous pourriez essayer de supprimer/déplacer ce et ensuite faire une mise à jour locale

semble être la solution au problème dans le référentiel. J'ai identifié ces dossiers et fait un nouveau checkout de ces seuls dossiers spécifiques et wow, les verrous sont libérés dans le nettoyage suivant ! Merci beaucoup JesperE !

Mais, je n'arrive toujours pas à comprendre l'erreur du switch svn qui se lit maintenant comme suit,

svn : Le dépôt à 'svn://repourl/reponame/nomd'utilisateur'. a l'uuid 'm/reponame', mais le WC has 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

Des idées ?

0 votes

Pour les utilisateurs de R qui rencontrent cette erreur : github.com/wch/r-source/wiki#adding-svn-information

133voto

JesperE Points 34356

Si vous obtenez un "not a working copy" en faisant une récursive svn cleanup je suppose que vous avez un répertoire qui devrait être une copie de travail (c'est-à-dire le .svn au niveau supérieur le dit), mais il lui manque son propre .svn répertoire. Dans ce cas, vous pouvez essayer de supprimer/déplacer ce répertoire, puis de procéder à une mise à jour locale (c.-à-d. rm -rf content; svn checkout content ).

Si vous obtenez un not a working copy cela signifie que Subversion ne peut pas trouver un fichier approprié. .svn dans ce répertoire. Vérifiez s'il y a un .svn dans le répertoire contents

La solution idéale est un nouveau départ, si possible.

1 votes

Je suis d'accord, faites un nouveau checkout au lieu d'essayer de déplacer votre copie de travail avec le repo.

2 votes

Mon problème est que j'ai migré vers un nouveau serveur et restauré mes sauvegardes du système de fichiers avec les travaux non encore validés, et utilisé svnadmin pour filtrer les anciens projets dont je n'ai plus besoin. Mon référentiel contient donc toutes les informations dont j'ai besoin, mais il a un nouvel UUID. Dans ce cas, je vais juste mettre sous forme de tar les fichiers modifiés, faire un nouveau checkout, et ensuite dé-tarer.

0 votes

Votre suggestion dans le premier paragraphe ne fonctionne pas sur mon système (W7+Cygwin). C'est plutôt rm & svn update qui ont fonctionné.

48voto

Ken Arnold Points 974

Je me suis retrouvé dans une situation similaire ( svn: 'papers' is not a working copy directory ) d'une manière différente, alors j'ai pensé poster mon récit de bataille (simplifié) :

$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied

Oups ! Corrigez les permissions... alors :

$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~     papers
$ svn cleanup
svn: 'papers' is not a working copy directory

Et même en bougeant papers hors du chemin et courir svn up (qui a fonctionné pour l'OP) n'a pas réglé le problème. Voici ce que j'ai fait :

$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers

Ça a marché.

6voto

Je l'ai résolu en

  1. Copier une sauvegarde des dossiers impactés
  2. SVN revert les dossiers impactés
  3. Coller les fichiers de la sauvegarde

Dans mon cas, le problème était dû à la suppression de fichiers .svn.

0 votes

Comment faire ? Veuillez expliquer en bref

5voto

Hextler Points 51

Peut-être que vous avez juste copié l'arbre du dossier et que vous essayez d'ajouter le plus bas.

SVN
|_
  |
  subfolder1
       |
       subfolder2   (here you get an error)

dans ce cas, vous devez valider le répertoire au niveau supérieur.

3voto

abatishchev Points 42425

Solution : Renommez le répertoire qui n'est pas une 'copie de travail'. Vérifier/mettre à jour/restaurer ce répertoire à nouveau Déplacez les fichiers du répertoire renommé vers le nouveau Valider les changements

Raison : Vous avez apporté des modifications à certains fichiers du répertoire .svn, ce qui casse la "copie de travail".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X