Copie de travail XXX verrouillée et nettoyage échoué dans SVN

, j'obtiens cette erreur quand je fais un svn update :

copie de travail XXXXXXXX verrouillé S'il Vous Plaît exécuter la commande "Nettoyage

quand je fais le nettoyage, je reçois

Nettoyage n'a pas réussi à traiter le les chemins suivants: XXXXXXXX

comment sortir de cette boucle?

566
demandé sur Dan 2008-09-24 19:37:37

30 réponses

Une approche serait de:

  1. copier les éléments révisés à un autre endroit.
  2. supprimer le dossier contenant le chemin du problème.
  3. mettre à jour le dossier contenant par Subversion.
  4. copiez vos fichiers ou fusionnez les modifications au besoin.
  5. Commit

une Autre option serait de supprimer le dossier de niveau supérieur et vérifier à nouveau. J'espère que ça ne vient pas de cela.

514
répondu Chuck 2014-12-02 21:58:11

pour moi, le truc était d'exécuter svn cleanup en haut de ma copie de travail, pas dans le dossier où j'avais travaillé tout le temps avant que le problème ne se produise.

465
répondu BradS 2016-09-22 18:09:48

regardez dans votre dossier .svn , il y aura un fichier appelé lock . Supprimer ce fichier et vous pourrez la mettre à jour. Il peut y avoir plus de fichiers de verrouillage dans le répertoire .svn de chaque sous-répertoire. Ils devront supprimer aussi. Cela pourrait être fait comme un lot tout simplement à partir de la ligne de commande avec par exemple

find . -name 'lock' -exec rm -v {} \;

notez que vous éditez manuellement des fichiers dans le dossier .svn . Ils ont été mis là pour une raison. Cette raison peut-être une erreur, mais sinon, vous pourriez endommager votre copie locale.

SOURCE: http://www.svnforum.org/2017/viewtopic.php?p=6068

208
répondu Intu 2013-03-22 16:38:51

Dans mon cas, je l'ai résolu en supprimant manuellement un enregistrement dans le SQLite ".svn\wc " record de verrouillage de fichier dans la table WC_LOCK.

j'ai ouvert le fichier "WC" avec L'éditeur SQLite et j'ai exécuté

delete from WC_LOCK

screenshot showing all entries purged from WC_LOCK

après eakkas 's commentaire, vous pourriez avoir besoin de supprimer toutes les entrées de WORK_QUEUE tableau ainsi.

99
répondu Gad D Lord 2017-05-23 12:34:42

voie la plus facile de tous les temps:

  1. Aller à Parent directory(Dossier) de Projet .
  2. Pres clic Droit
  3. appuyez sur TortoiseSVN puis appuyez sur nettoyer...
  4. le dialogue nettoyer apparaîtrait automatiquement
  5. sélectionner Clean up working copy status , Break locks , Fix time stamps , Vacuum pristine copies , Refresh shell overlays , Include externals
  6. Pres OK

vous avez fait votre travail avec succès.

Vérifier les captures d'écran pour votre référence.

premier pas:

enter image description here

Deuxième étape: Activez l'option Break lock (deuxième case à cocher dans la fenêtre popup cleanup)) enter image description here

J'espère que cela vous aidera beaucoup.

83
répondu Hiren Patel 2016-05-27 10:31:52

un collègue au travail voit constamment ce message, et pour lui c'est parce qu'il a supprimé un répertoire sous le contrôle de version SVN sans le supprimer de SVN , et a ensuite créé un nouveau répertoire à sa place non sous le contrôle de version, avec le même nom.

Si c'est votre problème...:

il y a différentes façons de le corriger, selon comment/pourquoi le répertoire a été remplacé.

de toute façon, vous devra probablement:

a) renommer le répertoire existant en un nom temporaire

B) faire un SVN revert pour récupérer le répertoire supprimé du système de fichiers, mais pas à partir de SVN

de là, vous pouvez soit

A) copier les fichiers pertinents dans le répertoire qui a été supprimé""

B) Si vous avez eu un changement significatif de contenu dans le répertoire, faites une suppression SVN sur L'original, commit, et renommer votre nouveau répertoire à nouveau au nom désiré, suivi d'un SVN add pour obtenir que sous contrôle de version.

48
répondu Matt 2013-05-13 08:20:13

pour moi, aucune des solutions ci-dessus n'a fonctionné. J'ai trouvé une solution en brisant les verrous. Lorsque j'ai effectué le nettoyage svn, j'ai sélectionné "Break Locks" ainsi que "Clean up working copy status".

enter image description here

25
répondu LoveForDroid 2017-05-15 18:10:50

celui-ci travaillait pour moi.

  1. allez dans le dossier racine,
  2. clic droit et nettoyage
  3. Vérifiez toutes les options disponibles
  4. Appuyez sur ok

après nettoyage, il vous permettra de mettre à jour à la dernière version.

22
répondu Lance 2013-05-10 03:05:02

pour moi, c'était en quelque sorte la faute de tortue. Tortue vient de se plaindre "ne peut pas nettoyer, exécuter nettoyer", mais quand j'ai lancé la ligne de commande (svn cleanup), il m'a clairement dit qu'il ne pouvait pas supprimer certains fichiers qui étaient utilisés, la solution à laquelle était évidente. Une fois que J'ai fermé Visual Studio (qui gardait les fichiers ouverts), le nettoyage a bien fonctionné.

D'autres programmes peuvent également garder des fichiers ouverts dans la pension provoquant ce problème. Excel tenant un XLS ouvert était un coupable dans un autre cas donc il peut être sage de fermer tous les programmes qui peuvent utiliser quoi que ce soit dans le repo ou même redémarrer pour forcer les programmes à fermer et puis essayer le nettoyage à nouveau.

11
répondu Mark Sowul 2016-09-07 15:27:17

j'ai eu ce problème parce que les dossiers externes ne veulent pas être reliés dans un dossier existant. Si vous ajoutez une ligne de propriété svn:externals dont la destination est un dossier existant (avec ou sans versions), vous obtiendrez L'erreur de verrouillage de la copie SVN Woring. Ici, un nettoyage vous dira aussi que tout va bien mais que la mise à jour ne marchera pas.

Solution: supprimez le dossier troublant du dépôt et faites une mise à jour dans le dossier racine où le svn: la propriété externe est définie. Cela créera le dossier et tout ira bien à nouveau.

ce problème s'est posé pour moi parce que svn:externals for files exige que le dossier de destination soit contrôlé par version. Après que j'ai remarqué que cela ne fonctionne pas entre les différents dépôts, j'ai fait un saut des fichiers externes vers le dossier externe et je me suis retrouvé dans ce désordre.

7
répondu Oliver Zendel 2010-05-18 15:05:07

la façon la plus facile de faire cela est d'afficher les dossiers cachés et ensuite d'ouvrir le .Dossier SVN. Vous devriez voir un fichier de 0 KB nommé "lock" supprimer cela va corriger le problème

6
répondu fawefawefa 2010-03-15 21:09:00

j'ai rencontré exactement le même problème en utilisant SVN 1.7 et aucune des corrections mentionnées ci-dessus n'a fonctionné.

avant tout, assurez-vous de sauvegarder tout votre contenu modifié.

après avoir passé quelques heures (n'a pas tout rechargé car ma branche est de plus de 6 Go de taille), j'ai trouvé qu'il y a un fichier db appelé" wc " dans le .dossier svn de votre branche.

ouvrir le fichier db en utilisant n'importe quel gestionnaire db (j'ai utilisé le gestionnaire sqlite de firefox plugin) et naviguez vers la table WC_LOCK. Cette table aura les entrées pour les serrures acquises. Supprimer les enregistrements de la table et vous avez terminé :)

5
répondu Rohan 2012-11-12 08:25:34

quand j'ai ce problème, je trouve que l'exécution de la commande de nettoyage directement sur le chemin du problème semble généralement fonctionner. Ensuite, je vais lancer le nettoyage à partir de la racine de travail à nouveau, et il se plaindra d'un autre répertoire. et je répète jusqu'à ce qu'il arrête de se plaindre.

3
répondu stephen 2009-07-16 19:01:01

si vous êtes sur une machine Windows, regardez le dépôt par un navigateur et vous pouvez bien voir deux fichiers avec le même nom de fichier, mais en utilisant des cas différents. Subversion est sensible à la casse et Windows ne l'est pas donc vous pouvez obtenir une serrure quand Windows pense qu'il tire vers le bas le même fichier et Subversion ne le fait pas. Supprimez les noms de fichiers dupliqués sur le dépôt et réessayez.

3
répondu toxaq 2010-05-04 07:55:38

Je l'ai fait en créant simplement un nouveau dossier, en vérifiant le projet, en copiant les fichiers mis à jour dans le nouveau dossier.

Il a été fixé avec une nouvelle caisse.

3
répondu Don 2011-06-03 19:12:37

utilisez-vous TortoiseSVN et vient d'être mis à jour? J'ai déjà eu ce problème en passant de 1,4 à 1,5 et en ne redémarrant pas. (Essayez un redémarrage).

la raison pour laquelle vous devez redémarrer est parce que le fichier cache devient tout funky.

sinon, pour passer à autre chose, exportez cette copie de travail dans un nouveau dossier (ne copiez pas le .svn dossiers cachés), re-checkout du projet, et de déplacer tous vos codes de retour, puis continuez avec votre livraison.

2
répondu Adam 2008-09-24 15:43:28

il suffit de supprimer le .SVN folders, puis lancer un nettoyage sur le répertoire parent. Fonctionne parfaitement!!

2
répondu Ben 2009-06-11 14:57:14

dans les Versions sous Mac OS: Action - > nettoyer les serrures de la copie de travail...

2
répondu HotJard 2012-07-31 14:16:09

j'ai souvent un tel problème. Mon schéma qui cause des problèmes de nettoyage.

  1. j'ai ouvert le fichier image dans la visionneuse.
  2. j'efface le fichier image/dossier.
  3. je suis en train de commit/update

la fermeture du visualiseur d'image où le fichier supprimé est ouvert résout le problème. Peut-être que d'autres logiciels peuvent bloquer le nettoyage de la même façon.

en général. Je crois que redémarrer l'ordinateur peut aider dans de tels cas.

2
répondu Dmitry Borisov 2017-04-10 10:52:43

SVN met normalement à jour sa structure interne (.svn / prop-base) des fichiers d'un dossier avant que les fichiers réels ne soient récupérés du dépôt. Une fois les fichiers récupérés, cela sera éclairci. Souvent, l'erreur est lancée parce que la "mise à jour" a échoué ou a été annulée prématurément pendant la progression de la mise à jour.

  1. vérifiez que tous les fichiers sont listés sous .svn/prop-répertoire de base
  2. Supprimer tous les fichiers qui ne sont pas dans le dossier
  3. Nettoyage
  4. mise à Jour

maintenant la mise à jour devrait fonctionner.

1
répondu lud0h 2009-03-02 22:18:15

a eu le même problème parce que j'ai exporté un dossier sous un dossier contrôlé par version. A dû supprimer le dossier de TortoiseSVN, puis supprimer le dossier du système de fichiers (TortoiseSVN n'aime pas les sous-dossiers non suivis en versions ... pourquoi pas???)

1
répondu 2009-03-12 14:41:00

ne supprimez pas votre solution!

dans le .svn dossier que vous avez un fichier nommé serrure, il est de 0 octets

, Vous pouvez supprimer tous ces fichiers à partir de tous les .svn folders dans votre solution et il fonctionnera

Cela a fonctionné dans mon cas

1
répondu Para 2010-07-06 10:25:26

sur place le démontage des fichiers, et une nouvelle caisse au même endroit, a résolu ce problème pour moi.

dans TortoiseSVN, pour effectuer une décompression en place, faites glisser le dossier racine de la copie de travail de la liste des fichiers sur lui-même dans l'arborescence des répertoires, et choisissez "SVN Export versioned items here" dans le menu pop-up. TortoiseSVN remarque que la destination est la même que la source, et suggère de désactiver la version de travail.

après la décompression, faites une nouvelle sortie dans le même dossier (qui contient maintenant une copie non suivie en versions de tous les fichiers que vous aviez). TortoiseSVN vous avertira que vous êtes en train de vérifier dans un dossier existant, mais vous pouvez aller de l'avant.

après cela, les nettoyages, mises à jour et autres opérations ont fonctionné sans problème. Étant donné que les deux étapes ci-dessus préservent les modifications locales, il ne devrait pas y avoir de perte d'information (mais la sauvegarde de la copie de travail avant celle-ci peut néanmoins être une bonne idée).

un avertissement: si la copie de travail contient des versions mixtes ou des changements de propriété non engagés, cette information sera perdue. Pour moi, ce n'est pas un cas courant, et compte tenu du choix d'une copie de travail corrompue ou de la perte de changements de propriété non engagée, j'ai tendance à opter pour cette dernière.

1
répondu Magnus 2011-01-11 18:10:58

j'ai eu ce problème où le" nettoyage "a fonctionné, mais la" mise à jour " continuerait d'échouer. La solution qui a fonctionné était de supprimer le dossier en question via Windows Explorer, pas delete de TortoiseSVN (qui marque la suppression comme quelque chose à s'engager dans le dépôt, et puis j'ai fait un "checkout" pour essentiellement "mettre à jour" le dossier à partir de la respository.

plus d'informations sur la différence entre un O/S delete et un SVN delete ici: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-rename.html

notamment:

lorsque vous TortoiseSVN → supprimer un fichier, il est immédiatement supprimé de votre copie de travail et marqué pour suppression dans le dépôt lors de la prochaine propagation.

et:

si un fichier est supprimé via l'explorateur au lieu d'utiliser le menu contextuel TortoiseSVN, le dialogue de propagation affiche ces fichiers et vous permet de les supprimer du contrôle de version avant la propagation. Cependant, si vous mettez à jour votre copie de travail, Subversion va repérer le fichier manquant et le remplacer par la dernière version du dépôt.

1
répondu Xonatron 2011-10-21 16:56:08

si vous êtes sous Linux, essayez ceci:

find "/the/path/to/your/directory" -name .svn -type d | xargs chmod 0777 -R

lancez ensuite la commande cleanup sur ce répertoire, puis essayez de mettre à jour.

1
répondu The Love Of Ocde 2011-12-27 19:26:34

j'ai fait ce qui suit pour corriger mon problème:

  1. renommé le dossier incriminé en plaçant un " _ " devant le le nom du dossier.
  2. a Fait un "Nettoyage" du dossier parent.
  3. a renommé le dossier fautif à son nom d'origine.
  4. a commis un crime.
1
répondu user1319487 2012-06-13 21:07:32

dans solution explorer, faites un clic droit sur le projet, dans le sous-menu d'ouverture, cliquez sur subversion et sélectionnez Nettoyage. Ça résoudra le problème, comme ça l'a fait pour moi. Espérons que cela fonctionnera.

1
répondu Nadeem Jamali 2013-09-26 10:46:56

Pour faire le nettoyage

  1. supprimer le .dossier svn.

  2. faites svncheckout dans le dossier racine.

  3. Essayez d'effectuer l'opération de nettoyage.

ceci a résolu mon problème.

1
répondu Jayaguru 2015-07-29 12:14:35

j'avais ceci sous TortoiseSVN et l'erreur était liée à un nouveau répertoire que j'avais créé sous un nouveau projet. Je venais de créer ce projet, donc il n'y avait aucune chance que ce répertoire ait existé avant. J'ai regardé dans le navigateur de dépôt et le nouveau dossier était en effet déjà dans le dépôt, mais TortoiseSVN ne l'a pas montré comme engagé.

afin de le contourner, puisque je venais de créer le dossier de toute façon, je l'ai supprimé dans le dépôt, puis j'ai fait une propagation. Il a bien fonctionné.

depuis que j'ai fait ça en dehors de Visual Studio, j'ai dû redémarrer Visual Studio pour qu'il trouve à nouveau tout.

0
répondu Scott Whitlock 2010-04-26 10:22:39

Lancer La Recherche....Verrouillage...Sélectionnez tous les fichiers énumérés et supprimez..fixe

0
répondu Ryan 2010-05-20 20:01:42