Erreur de copie de travail verrouillée dans tortoise svn lors de la validation

94

J'utilise Tortoise SVN pour mettre à jour et valider les modifications du référentiel du serveur chaque fois que j'apporte des modifications à ma copie de travail. Mais à partir de quelques jours, je ne suis pas en mesure de valider les modifications et j'obtiens l'erreur suivante chaque fois que j'essaie de valider.

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

J'ai essayé de déverrouiller le dossier en faisant un clic droit dessus et en sélectionnant Tortoise SVN> Libérer le verrouillage , il est dit

Il n'y a rien à débloquer. Aucun fichier n'a de verrou dans cette copie de travail

Quel pourrait être le problème?

Anil
la source

Réponses:

232

Pas de problème ... essayez ceci:

  • Accédez au dossier SVN de niveau supérieur.
  • Faites un clic droit sur le dossier (qui contient vos fichiers svn)> TortoiseSVN> CleanUp

Cela résoudra sûrement votre problème. J'ai fait ça beaucoup de temps ... :)

Remarque. Assurez-vous que l'option "Break locks" est sélectionnée dans la boîte de dialogue Cleanup.

MicroYeux
la source
merci @MicroEyes ... maintenant je peux m'engager. J'ai juste un petit doute. Après avoir modifié un fichier, dois-je commencer par valider puis mettre à jour le fichier (dans la copie de travail) ou mettre à jour puis valider?
Anil
2
Suivez toujours la mise à jour puis validez. Sinon, vous recevrez un message de mise à jour de TortoiseSVN, car votre copie de version est plus ancienne que stockée sur le serveur SVN. Donc de toute façon, vous devez mettre à jour et vous engager.
MicroEyes
1
oui .. qui a résolu mon problème lié à la mise à jour de ma copie actuelle vers la révision svn.
Jayesh Bhoi
Je viens d'ajouter des fichiers dans SVN et j'essaye de le valider mais j'ai la même erreur. J'ai essayé la commande cleanUp mais je ne suis pas en mesure de résoudre ce problème.
Ashok Chandrapal
Je vis cela beaucoup. Puis-je réduire le temps que svn prend avant d'afficher ce message d'erreur (cinq à dix secondes actuellement)? Je peux donc commencer le nettoyage plus tôt.
not-a-user
15

La réponse acceptée n'a pas fonctionné pour moi. Pour résoudre ce problème, j'ai dû faire un clic droit sur le fichier qui était verrouillé, sélectionnez repo-browser. Cela a ouvert une fenêtre contextuelle avec les fichiers tels qu'ils sont sur le serveur SVN. J'ai ensuite cliqué avec le bouton droit sur le fichier verrouillé et sélectionné break lock.

Lorsque j'ai fermé le navigateur du référentiel, de retour sur l'explorateur, j'ai enfin pu m'engager!

Johann
la source
Vous devez juste vous assurer que l'option "Break locks" est sélectionnée dans la boîte de dialogue Cleanup. Je pense qu'il est sélectionné par défaut (et c'est pourquoi cela n'a pas été mentionné dans la réponse d'origine).
Nux
12
  1. Faites un clic droit sur le dossier.
  2. TortoiseSVN-> Vérifier les modifications.
  3. Cliquez sur le bouton Vérifier le référentiel.
  4. Interrompre le verrouillage de tous les fichiers renvoyés.
Elsabe
la source
3

J'ai également rencontré ce problème. Pour certains, je tiens à souligner que s'il est verrouillé, VÉRIFIEZ AVEC VOTRE ÉQUIPE. Certains membres de l'équipe peuvent avoir certaines choses verrouillées parce qu'ils y travaillent (cela permet aux développeurs de travailler sur des choses sans que d'autres n'entrent et essaient de travailler sur le même contenu). Si tel est le cas, la libération du verrou, puis la mise à jour risquent de perdre des données pour le développeur qui l'a verrouillé.

Dans cet esprit, ma préoccupation était que l'option «nettoyer» modifierait éventuellement ma copie de travail ou supprimerait des informations du niveau Repo de Subversion. Ce n'est pas le cas. La réponse a fonctionné pour moi. Le mien s'est verrouillé lorsque j'ai cliqué sur Annuler au milieu d'une mise à jour. J'ai fini par tirer certaines de nos branches et je n'avais pas besoin du matériel, alors j'ai appuyé sur Annuler. Ma copie de travail est devenue verrouillée. Je n'ai pas trouvé de documents qui se sont révélés «verrouillés» lorsque j'ai utilisé la commande «déverrouiller». Cela m'a laissé perplexe et après une lecture rapide (et ce fil), j'ai tenté la commande «nettoyer». Après un nettoyage, mon problème a été résolu et rien n'était plus verrouillé.

source: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Eric
la source
2

Il y a plusieurs significations de «verrou» dans SVN et certaines de ces réponses qui parlent de «briser le verrou» ou d'un coéquipier tenant un verrou n'utilisent pas le sens pertinent pour la question originale. Cette question concerne les "verrous de copie de travail" (c'est-à-dire qu'ils sont entièrement locaux de la copie de travail sur votre ordinateur et n'ont rien à voir avec vous ou vos coéquipiers détenant un verrou / extraction sur un fichier). La réponse acceptée par MicroEyes fait référence à l'utilisation correcte et constitue votre meilleure option lorsque cela se produit.

Si un nettoyage ne fonctionne pas, vous devrez peut-être extraire une nouvelle copie de travail du projet. Si vous avez des fichiers modifiés et non validés, vous devrez les copier dans la nouvelle copie de travail afin de ne pas perdre vos modifications.

Voir cette page dans la documentation Tortoise SVN pour une description des trois utilisations de "lock": http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Extrait (italiques ajoutés):

Les trois significations de «Lock»

Dans cette section, et presque partout dans ce livre, les mots «verrouiller» et «verrouiller» décrivent un mécanisme d'exclusion mutuelle entre les utilisateurs pour éviter les conflits de commits. Malheureusement, il existe deux autres types de «verrouillage» dont Subversion, et donc ce livre, doit parfois se préoccuper.

Le second concerne les verrous de copie de travail , utilisés en interne par Subversion pour éviter les conflits entre plusieurs clients Subversion fonctionnant sur la même copie de travail. Habituellement, vous obtenez ces verrous chaque fois qu'une commande comme update / commit / ... est interrompue en raison d'une erreur. Ces verrous peuvent être supprimés en exécutant la commande de nettoyage sur la copie de travail, comme décrit dans la section intitulée «Nettoyage».

...

G. Stevens
la source
2

Je n'avais aucune idée de quel fichier avait le verrou, donc ce que j'ai fait pour sortir de ce problème était:

  1. Je suis allé dans le dossier de plus haut niveau
  2. Cliquez sur le nettoyage et coché également parmi les méthodes de nettoyage -> Briser les verrous

Cela a fonctionné pour moi.

cosmoto91
la source
1

J'avais essayé diverses choses, y compris "Clean Up" sur les sous-répertoires inférieurs. Enfin, j'ai essayé de mettre à jour le dossier de niveau supérieur. Rien. Ensuite, j'ai lu le conseil "Nettoyer le niveau supérieur". J'ai essayé ça. La partie nettoyage a réussi, mais le verrou est resté. Ma solution était de revenir au niveau supérieur, de nettoyer, puis de nettoyer chaque dossier rouge (!) Dans lequel je pouvais explorer . Après que tout a été "nettoyé", la mise à jour a parfaitement fonctionné. L'astuce "break lock" semble également bonne, à l'exception du fait qu'un membre de votre équipe peut avoir un verrou légitime sur les choses.

Jim
la source
0

J'ai réussi à me verrouiller hors d'un fichier dans svn - je ne sais pas comment - mais quand j'ai essayé de (re) -obtenir le verrou (Tortoise montrait l'option "Get Lock" pour le fichier), il s'est plaint qu'il avait déjà le fermer à clé. J'ai essayé de supprimer le fichier et de valider le changement de répertoire - même résultat. J'ai essayé CleanUp (y compris l'actualisation de la superposition), mais cela a également échoué.

La solution était d'aller dans le repo-browser Tortoise, de trouver le fichier et d'utiliser la fonction break lock .

user1844643
la source
0

Si cela ( https://stackoverflow.com/a/11764922/3045875 ) ne résout pas le problème: Vérifiez si un autre outil SVN interfère et fermez l'outil. Nous avons juste eu du mal quelques heures à fusionner en utilisant TortoiseSVN et avons eu des dizaines d'erreurs de verrouillage. Finalement, nous avons pensé que l'intégration Matlabs SVN interférait et après la fermeture, tout a fonctionné.

RMK
la source
-1

Solution Windows:

https://sourceforge.net/projects/win32svn/

1.Téléchargez-le, puis ajoutez-le au chemin système.

2. Allez dans le répertoire de travail, exécutez "svn clean" et "svn update" dans cmd.

xiaoliuzi
la source