Pourquoi est-ce que je continue à obtenir 'SVN: copie de travail XXXX verrouillé; essayer de faire le 'nettoyage'?
si vous avez déjà travaillé avec les outils SVN dans Eclipse (Subversion, subversive), alors vous êtes probablement familier avec la 'copie de travail 'XXX' verrouillée..." erreur.
j'ai trouvé un message très utile avec une solution à ce problème à: copie de travail XXX verrouillé et nettoyage échoué dans SVN
aussi grand que soit le contournement, il est une douleur de le faire encore et encore. Est-ce que quelqu'un sait pourquoi j'ai cette erreur et ce je pourrais faire pour l'en empêcher?
contexte: je crée un plugin Eclipse qui implique l'écoute des événements SVN, donc en testant ce plugin, je suis constamment en train d'ouvrir et de fermer l'espace de travail. Je fais habituellement 1 ou 2 engage chaque fois que j'ouvre l'espace de travail. De temps en temps, la propagation échouera et je reçois l'erreur "copie de travail verrouillée". J'aimerais que cette erreur ne se reproduise plus, donc tout conseil est apprécié.
Merci!
11 réponses
- sélectionner le projet
- clic droit sur le projet sélectionné
- De L'Équipe -> Nettoyage
Problème Résolu.
Remarque: Les étapes ci-Dessus ne fonctionne que Eclipse(Indigo package)
généralement un fichier .lock
est créé et décide de l'état de verrouillage/déverrouillage en vérifiant l'existince de ce fichier. Je pense que si vous supprimez ce fichier .lock
seulement, alors le problème disparaîtra.
J'ai eu beaucoup de problèmes avec SVN avant et une chose qui m'a certainement causé des problèmes est de modifier des fichiers en dehors de Eclipse ou de supprimer manuellement des dossiers (qui contient le .svn folders), qui m'a probablement causé le plus d'ennuis.
modifier
Vous devez également faire attention à ne pas interrompre les opérations SVN, bien que parfois un bug puisse se produire et cela pourrait causer le fichier .lock
à ne pas être supprimé, et donc votre erreur.
assurez-vous de nettoyer exactement ce que dit la console. Par exemple, si un sous-dossier (un paquet) est verrouillé:
svn: E155004: Commit failed (details follow):
svn: E155004: Working copy 'C:\Users\laura\workspace\tparser\src\de\test\order' locked
svn: E155004: 'C:\Users\laura\workspace\tparser\src\de\test\order' is already locked.
nettoyage C:/Users/liparulol/workspace/tparser/src/de/mc/etn/parsers/order
ensuite, vous devez nettoyer le dossier spécifié et non l'ensemble du projet. Si vous êtes dans eclipse, cliquez-droit sur le paquet, pas sur le dossier du projet et exécuter le nettoyage.
après plus d'exploration et de tests, il semble que ce problème était causé par le débogage du plugin et l'utilisation de points d'arrêt. SVN / Subclipse n'a apparemment pas aimé avoir des points de rupture à mi-chemin de leur exécution et, par conséquent, ces fichiers de verrouillage ont été créés. Dès que j'ai commencé à lancer le plugin, ce problème a disparu.
cela se produira quand quelque chose a mal tourné dans un de vos dossiers dans votre projet.
Vous avez besoin de localiser le dossier verrouillé et exécuter svn cleanup
sous le dossier spécifique.
Vous pouvez résoudre cela comme suit:
- run
svn commit
commande pour savoir quel dossier a mal tourné. - changez le répertoire de ce dossier et lancez
svn cleanup
. Alors c'est fait.
j'ai eu le même problème en utilisant le paquet com.xxx.service.model
.
pour le corriger, j'ai d'abord fait une sauvegarde des changements de code dans le paquet modèle. Ensuite supprimé modèle de colis et synchronisé avec le référentiel. Il affichera le dossier/paquet entier entrant. Puis mis à jour mon code.
enfin, collez L'ancien code commit dans le dépôt SVN. Il fonctionne très bien.
ce qui suit devrait déverrouiller une copie de travail verrouillée (Testée sur svn client version 1.6.11 et elipse version: Mars.2 libération (4.5.2))
étape 1: (allez à la copie de travail de répertoire) $cd working_copy_dir
étape 2: (se connecter au svn de base de données sqlite) $sqlite3 .svn / wc.db
étape 3: (supprimer tous les enregistrements du tableau WC_LOCK) sqlite> delete from WC_LOCK;
étape 4: (déconnecter de la base de données sqlite 3) sqlite>ctrl + d
étape 5: (de eclipse) cliquez avec le bouton droit de la souris sur votre copie de travail, puis cliquez sur Team - > Refresh / Cleanup
cela m'est arrivé quand j'ai copié un répertoire d'un autre projet subversion et essayé de le propager. La soluction a été de supprimer les .directeur svn dans le répertoire que je voulais engager.
ce type de problème peut se produire lorsque vous supprimez/déplacez des fichiers - essentiellement en apportant des changements à la structure de votre répertoire. Subversion ne vérifie que les modifications apportées aux fichiers déjà ajoutés à subversion, et non les modifications apportées à la structure du répertoire. Au lieu d'utiliser les commandes copy etc de votre système D'exploitation, utilisez plutôt svn copy etc. S'il vous plaît voir http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html
en outre, lors de la validation des modifications, svn stocke d'abord un" résumé " des modifications dans une liste todo. Après avoir effectué les opérations svn dans cette liste todo, il bloque le fichier pour empêcher d'autres changements pendant que ces actions svn sont effectuées. Si l'action svn est interrompue à mi-chemin, par exemple par un crash, le fichier restera verrouillé jusqu'à ce que svn puisse terminer les actions de la liste todo. Cela peut être "réactivé" en utilisant la commande SVN cleanup . S'il vous plaît voir http://svnbook.red-bean.com/en/1.7/svn.tour.cleanup.html
Solution: Step1: doit supprimer le fichier" lock "qui se trouve sous".svn" fichier caché. Step2: dans le cas où il n'y a pas de fichier" lock "alors vous verriez "we".db" vous devez ouvrir cette base de données et besoin de supprimer le contenu seul à partir des tableaux suivants – serrure "151910920 – - wc_lock Étape 3: Nettoyez votre projet Etape 4: Essayer de s'engager maintenant. Etape N ° 5: Fait.