web-dev-qa-db-fra.com

Le dossier est verrouillé et je ne peux pas le déverrouiller

Lorsque j'essaie de mettre à jour ou de valider le code d'un projet, cela me dit que le dossier est verrouillé. Lorsque j'essaie de "libérer le verrou", cela signifie qu'il n'y a rien à déverrouiller dans cet espace de travail.

Qu'est-ce que ça veut dire? Pourquoi je ne peux pas mettre à jour, valider ou même nettoyer le projet.

106
Iyad Al aqel

Cliquez avec le bouton droit de la souris sur votre dossier de travail Subversion et sélectionnez TortoiseSVN-> Nettoyer dans le menu contextuel. Ceci récitera son chemin dans votre répertoire de travail et supprimera toutes les actions incomplètes, supprimez les verrous local (ce qui est différent de l'utilisation du verrouillage Subversion d'un fichier dans le référentiel qui permet à tout le monde de connaître le verrouillage).

Si cela ne fonctionne pas, voyez si vous pouvez trouver les noms des fichiers qui ont été modifiés, mais pas encore validés, sauvegardez-les et refaites la commande.

159
David W.

Si le fichier a été verrouillé par vous-même (même compte svn), vous pouvez suivre ces étapes:

Faites un clic droit sur le fichier ou le dossier verrouillé, puis sélectionnez ( TortoiseSVN-> Obtenir le verrou ... , puis cochez la case "- [] Voler les verrous "dans le coin inférieur gauche de la boîte de dialogue, cliquez sur" OK ". Si cela se termine avec succès, c'est bon. Lorsque vous cliquez à nouveau avec le bouton droit sur le fichier, vous pouvez voir TortoiseSVN-> Libérer le verrouillage ... , cliquez pour le déverrouiller.

14
cuixiping

En utilisant la ligne de commande svn pour déverrouiller les dossiers locaux, utilisez simplement svn cleanup.

Avant:

# svn commit -m "fixing #1234"

commit

# svn st

before

# svn cleanup

Après:

# svn st

after

# svn commit -m "fixing #1234"

after2

12
Sebas

Pour tous ceux qui ont encore ce problème ( Erreur: La copie de travail '{DIR}' est verrouillée. ), j'ai votre solution:

J'ai constaté que lorsque l'une des fenêtres de TortoiseSVN se bloquait, il laissait un fichier TSVNCache.exe qui contenait encore quelques descripteurs pour votre copie de travail et qui causait les problèmes de verrouillage que vous rencontriez (et empêchait également Clean Up de faire son travail).

Donc, pour résoudre ceci:

soit

1a) Utilisez Process Explorer ou similaire pour supprimer les descripteurs appartenant à TSVNCache.exe.

1b) ..ou encore plus facile, il suffit d'utiliser le Gestionnaire des tâches pour tuer TSVNCache.exe

alors

2) Faites un clic droit -> TortoiseSVN -> Nettoyer. Seul "Nettoyer l'état de la copie de travail" doit être vérifié.

À partir de là, bonne mise à jour/engagement. Vous pouvez reproduire le comportement de verrouillage en effectuant une mise à jour SVN puis en supprimant rapidement son processus TortoiseProc.exe avant la fin de la mise à jour.

10
Jonathon J Howey

C'était la première fois que j'avais ce problème. J'ai même essayé de redémarrer le PC, sans effet. Cela résout mon problème:

Solution pour moi:

  1. clic droit sur le répertoire de travail du projet.
  2. Naviguez TortoiseSVN.
  3. Naviguez vers nettoyage.
  4. Laissez toutes les options par défaut et cochez Break Locks
  5. Cliquez OK

Cela fonctionne pour moi. J'ai pu valider des modifications.

5
WilliamK

Pour déverrouiller un fichier dans votre copie de travail à partir de l'invite de commande actuellement verrouillée par un autre utilisateur, utilisez l'option --force.

$ svn unlock --force tree.jpg

3
manav m-n

J'ai eu ce problème et j'ai fait ci-dessous les étapes pour le résoudre:

  1. Aller au dossier parent au lieu du dossier enfant
  2. Sélectionnez le nettoyage SVN
  3. Cliquez sur OK.

Faites cette étape sur le dossier parent au lieu du dossier enfant!

Cela a fonctionné pour moi!

3
Akhilesh

J'ai eu ce problème où je ne pouvais pas déverrouiller un fichier du côté client. J'ai décidé d'aller du côté du serveur, ce qui était beaucoup plus simple.

Sur le serveur SVN:

Localiser les serrures

 svnadmin lslocks /root/of/repo
 (in my case it was var/www/svn/[name of Company])

 You can add a specific path to this by svnadmin lslocks /root/of/repo "path/to/file"

Enlever le verrou

 svnadmin rmlocks /root/of/repo “path/to/file” 

C'est ça!

1
Stacker

Je déplaçais un dossier d'un niveau à un autre. Mon erreur a été de faire le déménagement depuis le dossier parent.

Mauvais exemple:

pwd -> C:\Repo\ParentDir\
svn move ./DirtoCopy ../AnotherDir

SVN doit mettre à jour le répertoire parent avec les informations de dossiers supprimés.
Vous devez le faire à partir de la racine commune des dossiers source et cible ou utiliser des chemins d'accès complets.

Bon exemple:

svn move C:\Repo\ParentDir\DirtoCopy C:\Repo\NewLocation
1
rasky74

J'ai pu résoudre ce problème sur ma machine en renommant les dossiers pour en réduire le chemin.

0
rsivakumar

Pour déverrouiller un document bloqué: 1. Faites un clic droit -> Verrouiller 2. Cochez la case "Voler les verrous" 2. Libérez le verrou.

0
user7257040

En plus de la réponse de David M., lors du nettoyage -> cochez l'option 'break locks'. Cela garantira la libération des verrous. Alors faites svn update. Cela a fonctionné pour moi.

0
Vinnu

Je recherche beaucoup sur ce problème mais aucune solution ne résout mon problème tant que je n'ai pas essayé ceci:

Mon dossier de référentiel étant partagé avec une machine virtuelle Windows xp, j'exécute le nettoyage à partir de la VM, puis j'exécute SVN UPDATE à partir de l'hôte.

Cela a fonctionné pour moi.

Salutations du Costa Rica.

0
Luisca94

Solution:

  1. Clic droit sur le répertoire de travail du projet.
  2. Naviguez TortoiseSVN.
  3. Naviguez jusqu'à nettoyer.
  4. Sélectionnez Nettoyer le statut de la copie de travail (cochez la case).
  5. Cliquez sur OK
  6. Répétez les étapes 1 et 2, puis naviguez pour libérer le verrou.
  7. Cliquez sur OK. Votre verrou de projet s’ouvre.
0
Vinayak