web-dev-qa-db-fra.com

SVN - Pas une erreur de copie de travail

Je tire mes cheveux sur celui-ci.

J'ai un site dont la version est contrôlée à l'aide de Subversion. J'utilise aptana (Eclipse, subclipse) pour faire le svn. J'ai vérifié les fichiers entrants et sortants, mis à jour, etc. et tout va bien. Cependant, le système que nous avons construit ajoute ses propres fichiers et dossiers.

Lorsque j'essaie de les commettre, il me dit que <path> n'est pas une copie de travail. Si j'essaye de faire un nettoyage, alors ça donne la même erreur. J'ai trouvé que je pouvais ajouter manuellement chaque fichier au contrôle de version, mais la même erreur est renvoyée. Faire une mise à jour n'aide pas, actualiser l'espace de travail ne fait rien non plus. Le nettoyage semble mourir après l'erreur, puis le répertoire est verrouillé.

Je sais que vous êtes censé ajouter des fichiers avec SVN, mais comment travaillez-vous avec les fichiers générés? Comment puis-je contourner cette erreur "<folder> n'est pas un répertoire de copie de travail"? Comment faire en sorte que Subversion se contente de consulter les fichiers et de les ajouter à son référentiel?

26
Paul M

Nous avons eu ce problème aujourd'hui lorsque j'ai essayé d'ajouter un dossier "A" dans lequel je n'avais pas l'autorisation d'écriture (il ne pouvait donc pas créer le dossier A/.svn).

L'exécution de svn status m'a donné un "~" à côté du dossier A .. L'exécution de svn cleanup a indiqué que le parent de A était verrouillé.

Ce qui a fini par fonctionner était:

cp -r A A~    # backup, since A was not in the repo
rm -rf A      # removed locked directory
svn rm A      # remove A from pending commit
mv ~A A       # restore backup
svn add A     # re-add to pending commit
svn cleanup   # (had to cleanup several parent folders higher as well)
26
Sam

Le pas une erreur de copie de travail signifie que le dossier actuel n’a pas été initialisé correctement parSVN.

Pour corriger l'erreur, il suffit de renommer le dossier actuel, puis d'obtenir une copie de travail appropriée du projet auprès deSVNen effectuant un checkout du projet.

L’extraction créera alors une copie de travail correctement configurée de ce projet.

11
jussij

Je viens de rencontrer l'erreur "pas une copie de travail" dans ma, ahem, copie de travail. C'était pour un projet JDeveloper et il s'est avéré que la mise à niveau de JDeveloper (11.1.1.2.0) que je venais d'installer incorporait une version de SVNKit plus récente que celle que j'utilise pour l'accès SVN en ligne de commande (jsvn). Donc JDeveloper a discrètement mis à niveau le format des fichiers .svn, ce qui signifie que le client en ligne de commande ne peut pas les comprendre . Le penny est tombé lorsque jsvn s'est plaint d'un fichier manquant ".svn/format" dans la partie supérieure de mon projet. répertoire de niveau. J'ai trouvé des tas de ces derniers dans des sous-dossiers, tous identiques et ne contenant que le chiffre "9". Alors j’en ai copié un dans le dossier de niveau supérieur et jsvn a finalement donné un message approprié: "svn: ce client est trop ancien pour fonctionner avec une copie de travail '.'; Veuillez vous procurer un nouveau client Subversion" . identifié (via Google) et installé le niveau de client SVNKit compatible, le nouveau jsvn amélioré a pu reconnaître que ma copie de travail IS était en fait une copie de travail . Morale de l'histoire: si vous obtenez cette erreur et vous Si vous utilisez différents clients SVN sur le même ordinateur, le problème peut être qu'ils ne sont plus synchronisés.

2
Durban_legend

Couru dans ceci maintenant en utilisant TortoiseSVN nettoyant quelques répertoires morts. J'ai fait une copie de sauvegarde des fichiers, puis j'ai utilisé le navigateur de représentants pour supprimer le répertoire défectueux (ce qui était de toute façon une erreur). Ensuite, le nettoyage du projet a fonctionné et je peux maintenant continuer avec mes fichiers actuels.

1
Blaine

S'il vous plaît essayez de savoir où est le problème. S'agit-il du fichier .svn manquant ou de quelque chose d'autre . N'oubliez pas que le fichier .svn est créé lorsque vous avez terminé votre enregistrement. et contient le chemin de répertoire correspondant, les noms de code avec un numéro unique qui leur est associé . Allez au chemin de base de votre projet que vous pensez est parfaitement archivé . Créez un nouveau package temporaire et ajoutez un exemple de code Java dans this path . Ajoutez à la version et essayez de commettre . Si vous obtenez une erreur indiquant que le dossier est verrouillé (tentative de verrouillage du dossier déjà verrouillé), accédez au dossier .svn et renommez le fichier verrou . Essayez de nouveau pour archiver et commettre

Si cela fonctionne bien, alors vous avez terminé . Utilisez le même répertoire de base et archivez votre code à nouveau de ce répertoire à votre niveau de dossier après avoir nettoyé.

1
Mohit

dans mon cas, je déplace un espace de travail Eclipse vers un autre puis un problème est survenu. Pour résoudre le problème, je checkout le projet du svn repo. Ensuite, dans l'ancien projet, je nettoie tous les fichiers svn. (recherche simple .svn et delete) puis je copie le contenu dans celui qui vient d'être extrait, mes modifications deviennent visibles et mon projet est à jour Cette méthode peut être appliquée pour d’autres erreurs gênantes. J'espère aider quelqu'un

0
Halis Yılboğa

s'il vous plaît move répertoire actuel dans un autre emplacement et exécuter la commande svn update, puis remplacez le répertoire par le répertoire déplacé
Si vous utilisez tortoisteSVN, vous pouvez, avant d’exécuter svn update, exécuter le nettoyage de votre répertoire racine.

0
Alireza Alallah

"Pas une copie de travail" signifie que l'un des emplacements où votre IDE tente d'exécuter svn dans n'est pas contrôlé par svn (par exemple, l'ajout de fichiers dans un sous-répertoire ne figurant pas sous svn). Je dirais de vérifier vos chemins au sein de l'IDE.

0
Keltia

Parce que je fais toutes les tâches avec des outils visuels, je ne peux pas vous dire quelles commandes doivent être exécutées. 

Ceci est mon environnement, Windows XP. tortoiseSVN 1.6.7 avec Subversion 1.6.9, Eclipse 3.5 avec Subclipse 1.6.10. et le référentiel est géré avec un serveur SVN visuel sur Windows.

  1. Dans svn server visuel, j ai supprimé le dossier créé par l’autre outil (c’était le problème, comme l’a dit Keltia).
  2. Dans l'explorateur Windows, cliquez avec le bouton droit de la souris sur mon projet et avec les options de la tortue SVN, appuyez sur update. Avec cette action, le dossier a été supprimé dans ma copie de travail.
  3. Validé tous mes changements.
  4. a lancé l'outil qui crée le dossier (à nouveau).
  5. avec tortue SVN j'ai marqué avec add to ignorer la liste.

J'espère que cela t'aides.

0
OJVM