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:
PC-B:
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
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?
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
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.
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.
Exécutez un "nettoyage" au niveau du répertoire supérieur.
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
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é!
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.
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'.
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"
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.
Tortoise svn -> nettoyer
C'est tout en SVN
erreur "copie de travail verrouillée", Il suffit de suivre les étapes suivantes:
Vous pouvez mettre à jour le svn correctement sans erreur
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.
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
Pour PHPStorm ou Intellij:
VCS -> Cleanup Project