Copie de travail verrouillée

Je développe un site Web utilisant subversion comme contrôle de version, mais j’ai un 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 Home
  • Tortue SVN 1.7.3

J’ai créé un référentiel sur PC-A en utilisant VisualSVN.

Depuis PC-B, j’examine http: \\ PC-A: 81 \ svn \ test \ trunk vers D: \ xampp \ htdocs \ test-lalala.

À partir de PC-A, j’examine aussi http: \\ PC-A: 81 \ svn \ test \ trunk vers D: \ xampp \ htdocs \ test-lalala.

I Créez un hook post-commit exécutant le fichier my-post-commit.bat lorsque je m’engage 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 le fichier index.php et validez. Quand je commets, je reçois ce message d’erreur

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, et de vérifier le “statut de la copie de travail” et “Inclure les externes” (coché par défaut). Essayez d’append un fichier et de le valider, mais vous obtenez toujours le même message d’erreur.

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

Comment résoudre ce message d’erreur? Donc, quand je commets, le dossier sera mis à jour automatiquement?

    Chaque fois que je reçois une erreur bloquée de la copie de travail, je lance un “nettoyage”. Après cela, tout est revenu à la normale.

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

    Remarque: Effectuez cette opération sur un répertoire de niveau supérieur, ce qui devrait résoudre la plupart du temps.

    Pour quiconque ayant encore ce problème (Erreur: copie de travail ‘{DIR}’ verrouillée.), J’ai votre solution:

    J’ai constaté que lorsque l’une des fenêtres de TortoiseSVN se bloquait, il restait un TSVNCache.exe qui contenait encore quelques poignées sur votre copie de travail et causait les problèmes de locking que vous renconsortingez (et empêchait également Clean Up de faire son travail).

    Donc, pour résoudre ce problème:

    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

    alors

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

    De là, mise à jour / engagement heureux. Vous pouvez reproduire le comportement de Lock en effectuant une mise à jour SVN, puis en tuant 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 locking de fichier SQLite “.svn \ wc.db” dans la table WC_LOCK.

    Ouvrez simplement le fichier “wc.db” avec l’éditeur SQLite et exécuté

    supprimer de WC_LOCK

    La solution a été donnée dans un autre lien que je ne trouve pas en ce moment. Mais vraiment une bonne solution; sans se soucier de supprimer tous les répertoires

    Je l’ai corrigé en supprimant le dossier caché .svn et en le remplaçant par la nouvelle commande .svn et cela fonctionnait. Ce dossier caché a probablement été foiré!

    Je suis sûr que ça marche bien pour toi

    Allez dans le dossier SVN du 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 de Windows et utilisez l’utilisateur “Tortoise SVN”.

    Sélectionnez le fichier Clic-droit. Option ‘Tortoise SVN’ -> get Lock. Utilisez l’option ‘Steal The Lock’.

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

    “C: \ Program Files \ Serveur VisualSVN \ bin \ svn.exe” export “D: \ xampp \ htdocs \ test-lalala” –quiet –non-interactive –force –username myusername –password mypassword

    erreur “copie de travail verrouillée”, il suffit de suivre les étapes:

    1. Dans quel répertoire vous obtenez une erreur lors de la mise à jour
    2. Aller dans 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 faire

    Vous pouvez mettre à jour le svn correctement sans erreur

    Tortoise svn -> nettoyer

    C’est tout en SVN

    Lorsque vous obtenez une erreur de copie de travail, lancez 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 pour récupérer le nouveau fichier. Ensuite, remplacez-le par votre copie mise à jour et validez-le.

    J’ai rencontré les mêmes problèmes que vous avez décrits. Cela semble être un bug sur Tortoise 1.7.3. Je suis revenu à 1.7.2, j’ai effectué un nettoyage et une mise à jour. Maintenant, mon SVN / Tortoise fonctionne à nouveau

    Pour PHPStorm ou Intellij:

     VCS -> Cleanup Project 

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

    Etape 1: Ouvrez le terminal et accédez à votre projet puis lancez la commande “svn cleanup” puis “svn update”

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