web-dev-qa-db-fra.com

Subversion bloqué car "l'opération précédente n'est pas terminée"?

Si j'essaie de mettre à jour mon référentiel Subversion, cela signifie que je dois exécuter le nettoyage. Si je lance le nettoyage, cela signifie qu'un fichier est manquant. (J'ai supprimé un répertoire MASSIVE de fichiers qui n'ont pas pu être validés ce matin à partir de mon ordinateur personnel, mais le même jeu de fichiers a été validé depuis le travail et mon référentiel personnel est maintenant caduc) Ainsi, le nettoyage dit:

Échec du nettoyage de blablabla Impossible de définir le fichier blablabla en lecture-écriture: le système ne peut pas trouver le fichier spécifié.

Si je mets à jour, il est écrit:

Commande: Erreur de mise à jour: l'opération précédente n'est pas terminée. Lancez le 'nettoyage' s'il a été interrompu. Erreur: Veuillez exécuter le Commande 'Nettoyage'. Terminé!:

Comment puis-je obtenir ce décollé?

213
coderama

J'ai été dans des situations similaires. Avez-vous essayé d'exécuter le nettoyage à partir de la racine de votre espace de travail? Je sais que parfois, le nettoyage d'un répertoire enfant (où réside le problème) ne fonctionne pas, et le nettoyage à la racine de l'espace de travail fonctionne.

Si cela échoue toujours, vous avez supprimé un répertoire enfant quelque part. Essayez également de supprimer 1 niveau supérieur du répertoire enfant (en supposant que ce ne soit pas la racine) et d'essayer à nouveau la mise à jour et le nettoyage. 

Si les tentatives de nettoyage ne réussissent à aucun niveau, la réponse est malheureusement de récupérer une nouvelle copie de travail. 

90
Joshua McKinnon

Il n'est souvent pas nécessaire d'effectuer une nouvelle commande ou une nouvelle copie.

Je viens de résoudre un problème similaire relatif à l'erreur "L'opération précédente n'a pas été terminée" avec l'aide de ceci ( Link )

Il semble que svn se bloque parfois lors du traitement des commandes/opérations . Toutes ces opérations sont stockées dans le fichier de base de données wc.db du dossier .svn.

En téléchargeant SQLite dans mon répertoire de paiement et en cours d'exécution

sqlite3.exe .svn/wc.db "select * from work_queue"

vous pouvez obtenir une liste de toutes les opérations en attente. Ces opérations sont celles que l’erreur qualifie de "non finies".

En exécutant 

sqlite3.exe .svn/wc.db "delete from work_queue"

toutes les anciennes opérations sont supprimées de la file d'attente de travail et l'erreur disparaît .pas besoin d'une nouvelle extraction ou quoi que ce soit

317
Sigurd V

L'exécution de la console svn cleanup a résolu le même problème pour moi.

108
user2902464

Je viens d'avoir un problème similaire. L'exécution de Process Explorer a montré qu'un autre programme (Notepad ++) avait un descripteur de fichier dans un dossier que SVN avait tenté de supprimer. Quand j'ai fermé Notepad ++, "Clean Up" a pu s'exécuter avec succès.

24
Glen Little

Je faisais face à ce problème après avoir ajouté un fichier jar qui se trouve déjà dans le SVN et j'ai ajouté la nouvelle version du même nom.

Dans Eclipse j'ai essayé 

  1. Faites un clic droit sur le dossier> Équipe> Actualiser/Nettoyer.
  2. Nettoyer, compiler et actualiser mon application.
  3. Redémarrez l'Eclipse.

En utilisant les étapes ci-dessus, je suis capable de synchroniser.

18
Rakesh Chouhan

J'avais essayé les réponses les plus votées ici et quelques autres sans succès. Ma table WORK_QUEUE était vide et je n'ai pas pu essayer de nettoyer un dossier plus élevé. Ce que a fait était le travail suivant (via Tortoise SVN);

  • Clic droit sur le dossier
  • Allez à TortoiseSVN -> Nettoyer ...
  • Assurez-vous que l'option Break Locks est cochée, puis cliquez sur OK.

L'opération de nettoyage se termine maintenant avec succès et je peux continuer. Aucun téléchargement de sqlite3 ou d'autres solutions compliquées n'est requis.

10
DiskJunky

Essayer de lancer le nettoyage alors que vos fichiers sont ouverts m'a posé des problèmes. dès que j'ai fermé mon application (Visual studio), j'ai lancé le nettoyage et cela a réussi

9
John

J'ai eu le même problème, dans mon cas, j'utilisais svn tortoise avec l'application, je veux dire. En utilisant le shell cmd de Windows en mode racine, j'ai appliqué svn cleanup puis svn update .... Ensuite, vous pouvez revenir au mode application et cela fonctionnera parfaitement!

4
GutiMac

J'ai eu le même problème, et en quelque sorte, j'ai trouvé un fichier .svn caché au niveau c: \. Une fois que j'ai supprimé ce dossier caché (.svn), tout a bien fonctionné. Je dois avoir involontairement créé un répertoire de travail sur le lecteur racine.

2
mike gold

J'ai essayé de supprimer le dossier .svn vers un autre emplacement et de le replacer dans le même dossier racine. Après avoir essayé de mettre à jour le SVN, il a été mis à jour. Je ne sais pas comment ça a fonctionné. 

2
Ajayvignesh

Dans mon cas, j'ai eu gulp-watch en cours d'exécution qui a causé les problèmes. Après l'avoir arrêté, je pouvais exécuter la commande de nettoyage.

2
Mariusz Pawelski

salut les gars dans mes cas après avoir fermé Visual Studio et réessayer à CleanUp it work avoir du bon temps

2
Ali Sadri

J'ai eu une erreur du type "Impossible de modifier les permanentes du fichier '/Users/Code/UnitTest.cpp': Aucun fichier ou répertoire de ce type". La Subversion est confuse au sujet d’un fichier qui n’y est plus. J'ai simplement fait quelque chose comme "echo ABCD >> /Users/Code/UnitTest.cpp" pour créer une copie du fichier, puis le nettoyer. Ça a marché.

1
SmallChess

Cela m'est arrivé lors de l'utilisation d'externals et l'un d'entre eux était corrompu. Je devais aller dans ce dossier et effectuer un nettoyage. Ensuite, le nettoyage a fonctionné pour toute la copie de travail. 

Exemple: en utilisant ^/widgets/foo common/foo-widget externe, commencez par nettoyer le dossier common/foo-widget.

1
erikH

J'ai également collé avec le même problème que j'ai essayé coup:

1. Essayez de tuer le processus lié à svn, c'est-à-dire TSVNCache.exe et TortoiseProc 2.Reverting des fichiers non versionnés et suppression de ceux-ci, que j'ai dans svn . 3.cleanup à l'aide de la commande Invite "svn cleanup"

et finalement quand redémarré le bureau cela a fonctionné pour moi, donc pour le redémarrage du système a fonctionné pour moi 

1
Ankur Nirmalkar

Solution qui a fonctionné pour moi:

  1. Coupez le contenu de votre répertoire et copiez-le dans un autre dossier.
  2. Exécutez le nettoyage à partir de la ligne de commande sur le dossier vide.
  3. Copiez les fichiers dans le dossier d'origine.

C'est fait, mais je ne peux pas expliquer pourquoi cela se produit .. Si vous ne supprimez pas les fichiers, la commande de nettoyage indique qu'il ne peut pas lire/écrire ces fichiers.

1
Paolo

Dans mon cas, l'erreur est apparue lors d'une tentative de validation depuis un IDE. Lorsque j'ai exécuté la validation des mêmes répertoires avec TortoiseSVN dans l'explorateur, l'opération a réussi.

1
Dani

J'ai eu le même problème, ce qui a fonctionné pour moi:

  1. Copiez vos dossiers et fichiers dans un autre emplacement, par exemple dans un dossier (j'ai récemment modifié mes fichiers et l'engagement a échoué et a entraîné le problème résolu)
  2. extraire une nouvelle copie de travail
  3. copiez vos fichiers modifiés du dossier sur votre copie de travail et remplacez les fichiers existants. Commit/Updating devrait fonctionner maintenant
1
guest

J'ai résolu cette erreur aujourd'hui quand il s'est produit en essayant de valider sur SVN . L'erreur était authentique, TortoiseSVN ne pouvait pas accéder à un fichier que j'avais essayé de valider. Ce fichier avait été enregistré lors de l'exécution d'un programme "en tant qu'administrateur" sous Windows. Cela signifie que le fichier a un accès administrateur mais pas un accès depuis mon compte (TortoiseSVN s'exécutant en tant qu'utilisateur interactif) . J'ai pris possession du fichier en nomination sous mon compte Windows, puis le nettoyage a pu être poursuivi.

1
Kim Anthony Groves

supprimez le svn du dossier principal et remplacez-le par une autre copie viable que vous avez ailleurs. Le dossier svn sera normalement un dossier caché. Veillez donc à afficher le dossier avant de suivre les étapes ci-dessus.

1
digish a d

J'avais pris le dossier .svn de mon collègue développeur et remplacé mon dossier .svn par ceci. Cela a fonctionné pour moi. Je ne sais pas quelles peuvent être les autres conséquences!

0
Manish Dubey

J'ai rencontré plusieurs problèmes avec svn, y compris celui-ci, qui ont été résolus en supprimant/créant un répertoire .svn/tmp. Puis lancez svn cleanup

0
Vinnie James

Suite à la réponse de Sigurd V (vous devriez l’essayer d’abord), certaines bases de code plus grandes ont plusieurs dossiers «.svn», et ce n’est pas nécessairement celui du répertoire racine qui contient la tâche verrouillée. 

Si tel est le cas, vous devez vérifier chacun d'eux. Si vous avez déjà SQLite et Powershell, vous pouvez localiser rapidement le répertoire incriminé.

Pour rechercher les dossiers verrouillés, exécutez (en remplaçant path\to\sqlite.exe): 

Get-ChildItem -Path . -Filter '.svn' -Recurse -Hidden | foreach { $toFind = $_.FullName + "\wc.db" ; gci $toFind | foreach { echo $_.FullName ; path\to\sqlite.exe $_.FullName "select * from work_queue" } }

Cela donne une liste des répertoires .svn et, sous chacun d'eux, une liste des tâches en cours. 

S'il y en a avec des tâches non terminées, pour chaque exécution (en remplaçant path\to\sqlite.exe et path\to\.svn\wc.db): 

path\to\sqlite.exe path\to\.svn\wc.db "delete from work_queue"

0
Robert Gowland

Cela peut se produire lorsque des fichiers sont encore ouverts lorsque vous essayez de changer/nettoyer SVN.

J'avais une branche où j'avais créé un nouveau fichier, que j'avais ouvert dans une autre application. Le passage à une autre branche ne peut pas supprimer le fichier, ce qui entraîne l'échec du commutateur. Cela entraînait également l'échec de svn cleanup; toutefois, cela ne s'affiche pas comme raison dans l'interface utilisateur SVN de Tortoise.

L'exécution de svn cleanup à partir d'une fenêtre de console (sur le dossier racine) indique clairement l'erreur file\location\file.ext: The process cannot access the file because it is being used by another process

Fermer tous les fichiers/fenêtres ouverts et exécuter la console svn cleanup permet alors au nettoyage de fonctionner correctement.

Longue histoire - exécutez svn cleanup dans la console pour voir une erreur plus détaillée.

0
Jamie Pollard

En utilisant ce lien, https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html

J'ai remarqué que le tutoriel avait coché les 6 meilleures options. En désespoir de cause, je l'ai essayé avec ces cases à cocher et, à ma grande surprise, cela a fonctionné. Assurez-vous de lire attentivement ce que chacun fait. En regardant la description de chacun, ils semblaient sûrs d'inclure pour moi, donc l'un de ces éléments vérifiés semblait avoir résolu le problème qui me retenait. 

0
eaglei22

Dans mon cas, une instance de machine virtuelle Java en arrière-plan était en cours d'exécution, éliminant le nettoyage réussi.

0
Dish

J'ai d'abord eu ce problème en essayant de vérifier avec TortoiseSVN. À l’origine, TortoiseSVN clean up et console svn cleanup ont tous deux échoué avec des messages similaires à ceux de l’affiche originale.

Mais ma solution (découverte accidentelle) consistait simplement à attendre quelques minutes. Je pense que TSVNCache conservait certains de ces fichiers au moment de l’enregistrement.

0
Jahmic

J'utilise la tortue SVN. Lorsque le nettoyage échoue, cochez l'option de nettoyage.

Assurez-vous que l'option Pause des verrous est cochée.

Étape de nettoyage

  • bouton gauche de la souris dans le dossier d'exploration
  • sélectionnez 'Tortoise SVN' -> menu 'Nettoyer ...'
  • cocher ' Pause des verrous ' coché et appuyer sur 'ok'

Il a déjà répondu, mais parfois l'image aide

enter image description here

0
s.c

suivez les étapes ci-dessous.

1) Accédez au répertoire dans lequel vous ne parvenez pas à nettoyer avec svn. (Dossier racine ou dossier enfant).

2) Sélectionnez le dossier .svn dans le répertoire, coupez ce dossier et collez-le dans un lecteur ou un emplacement séparé (hors du répertoire svn).

3) Maintenant, retournez au répertoire - faites un clic droit et sélectionnez TortoiseSVN -->Repo-browser

4) Checkout le dossier (il n'effectuera pas de nouvelle extraction).

5) Tous vos éléments seront à nouveau versionnés, et le problème interne de svn sera réparé. Ce problème devrait être résolu.

0
Kunal Khatri