web-dev-qa-db-fra.com

Copie de travail verrouillée

Je développe un site Web en utilisant Subversion comme contrôle de version, mais le message d'erreur "répertoire de travail verrouillé"

Voici l'histoire:

J'ai 

PC-A:

  • Windows XP Pro 
  • VisualSVN 2.5.2
  • Tortue SVN 1.7.3

PC-B:

  • Windows XP Accueil
  • Tortue SVN 1.7.3

J'ai créer un référentiel sur PC-A à l'aide de VisualSVN. 

À partir de PC-B, je vérifie http: \\ PC-A: 81\svn\test\trunk vers D:\xampp\htdocs\test-lalala. 

À partir de PC-A, je consulte également http: \\ PC-A: 81\svn\test\trunk vers D:\xampp\htdocs\test-lalala. 

Je crée un hook post-commit qui exécute le fichier my-post-commit.bat. Ainsi, lorsque je commets sur http: \\ PC-A: 81\svn\test\trunk, dossier D:\xampp\htdocs\test-lalalaon PC- Un testament mis à jour, afin que d'autres personnes puissent voir le résultat.

"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\xampp\htdocs\test-lalala" --username myusername --password mypassword --config-dir "C:\Program Files\VisualSVN Server\conf" 

Sur PC-B, créez un fichier index.php et validez. Quand je commets, je reçois ce message d'erreur

error message

Sur PC-A, j'essaie de cliquer avec le bouton droit de la souris sur D:\xampp\htdocs\test-lalala TortoiseSVN> Nettoyer, puis de cocher les options "Nettoyage de la copie de travail" et "Inclure les données externes" (cochée par défaut). Essayez d'ajouter un fichier et de valider, mais vous obtenez toujours le même message d'erreur.

J'essaie de rechercher le fichier de verrouillage sur le dossier .svn mais il n'y a pas de fichier de verrouillage. J'essaie également de supprimer la copie de travail sur le PC-A D:\xampp\htdocs\test-lalala et de le commander à nouveau, mais lorsque je commets, j'ai toujours le même message d'erreur.

Comment résoudre ce message d'erreur? Alors, quand je commettrai, le dossier sera mis à jour automatiquement?

67
Permana

J'ai fini par utiliser la commande d'exportation plutôt que la commande de mise à jour. C'est le hook post-commit

"C:\Program Files\Serveur VisualSVN\bin\svn.exe" export "D:\xampp\htdocs\test-lalala" --quiet --non-interactive --force --username nomususus --mot de passe motypasse

1
Permana

Chaque fois que je reçois une erreur de copie de travail verrouillée, je lance un "nettoyage". Après cela, tout est rentré dans l'ordre.

Sur la ligne de commande, vous pouvez exécuter svn cleanup, ce qui supprime également les fichiers verrouillés.

Remarque: effectuez cette opération sur un répertoire de niveau supérieur et cela devrait résoudre la plupart du temps.

185
tatianes

Si vous rencontrez toujours ce problème (Erreur: la copie de travail '{DIR}' est verrouillée.), J'ai la 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 d'effectuer son travail).

Donc, pour résoudre ceci:

Non plus

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

1b) ..ou encore plus simple, utilisez simplement le Gestionnaire des tâches pour tuer TSVNCache.exe

Ensuite

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.

36
Jonathon J Howey

Exécutez un "nettoyage" au niveau du répertoire supérieur.

21
Prince

Je l'ai résolu en supprimant l'enregistrement WC_Lock dans l'enregistrement de verrouillage de fichier SQLite ".svn\wc.db" dans la table WC_LOCK.

Il suffit d'ouvrir le fichier "wc.db" avec l'éditeur SQLite et de l'exécuter

supprimer de WC_LOCK

La solution a été donnée dans un autre lien que je ne trouve pas pour le moment. Mais vraiment tout à fait un correctif; sans se soucier de supprimer tous les répertoires

10
sgupta

Je l'ai corrigé en supprimant le dossier .svn caché et je l'ai remplacé par le .svn à la sortie de la caisse et tout a fonctionné Probablement ce dossier caché s'est foiré! 

7
hackintosh152

Je suis sûr que ça fonctionne bien pour vous

Aller au dossier SVN de niveau supérieur.

Clic droit sur le dossier (qui contient vos fichiers svn) -> TortoiseSVN -> CleanUp

Cela résoudra sûrement votre problème. 

4
Sadikhasan

Si vous êtes un gars Windows et que vous utilisez l'utilisateur "Tortoise SVN".

Sélectionnez le fichier. Cliquez avec le bouton droit de la souris sur l'option 'Tortoise SVN' -> pour obtenir le verrou . Utilisez l'option 'Voler le verrou'.

3
Shirish

Vous pouvez le réparer en une seule étape. 

Étape 1: Ouvrez le terminal et accédez à votre projet, puis lancez la commande "svn cleanup" puis "svn update" 

2
Hardik Savani

Lorsque vous obtenez une erreur de copie de travail, exécutez simplement le svn cleanup qui nettoie tous les fichiers et dossiers indésirables. Si l'erreur persiste, faites une chose. 

Copiez vos fichiers sur un autre lecteur et supprimez le dossier ou le fichier de la copie de travail, puis effectuez une mise à jour. Le nouveau fichier sera récupéré, puis remplacé par votre copie mise à jour et validée.

1
LivCool

Tortoise svn -> nettoyer  

C'est tout en SVN 

1
prashant thakre

erreur "copie de travail verrouillée", Il suffit de suivre les étapes suivantes:

  1. Dans quel répertoire vous obtenez une erreur lors de la mise à jour 
  2. Aller à son répertoire parent 
  3. Dans le répertoire parent, allez dans le répertoire caché ".svn" 
  4. Supprimer le fichier avec le nom "lock"
  5. Nettoyer et Terminé 

Vous pouvez mettre à jour le svn correctement sans erreur

1
Ram Balwad

Le chiffrement de votre disque BitLocker est-il en cours d'exécution? Dans mon cas, le lecteur entier du disque a été verrouillé pour le chiffrement et SVN a échoué avec cette erreur.

0
KrishPrabakar

J'ai connu les mêmes problèmes que vous avez décrits. Cela semble être un bogue sur Tortoise 1.7.3. Je suis revenu à la version 1.7.2, exécuté un nettoyage et une mise à jour. Maintenant, mon SVN/Tortoise fonctionne à nouveau correctement

0
Alan Fletcher

Pour PHPStorm ou Intellij:

VCS -> Cleanup Project
0
Frank Roth