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é?
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.
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
L'exécution de la console svn cleanup
a résolu le même problème pour moi.
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.
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é
En utilisant les étapes ci-dessus, je suis capable de synchroniser.
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);
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.
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
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!
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.
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é.
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.
salut les gars dans mes cas après avoir fermé Visual Studio et réessayer à CleanUp it work avoir du bon temps
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é.
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
.
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
Solution qui a fonctionné pour moi:
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.
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.
J'ai eu le même problème, ce qui a fonctionné pour moi:
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.
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.
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!
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
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"
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.
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.
Dans mon cas, une instance de machine virtuelle Java en arrière-plan était en cours d'exécution, éliminant le nettoyage réussi.
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.
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
Il a déjà répondu, mais parfois l'image aide
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.