51 votes

Libérer les verrous dans Subversion de manière récursive

J'ai un problème avec le contrôle de version dans la subversion. J'ai extrait une copie de travail à partir de respository et a obtenu des verrous sur l'ensemble de ses fichiers. Puis, sans relâcher les verrous, j'ai supprimé le dossier à partir du disque.

  • Je ne peux pas supprimer le dossier de référentiel, depuis son obtenu un verrou
  • Si le " je " et essayer de libérer les verrous de manière récursive, il est dit, il n'y a pas de verrous pour être libéré.
  • Dans Parcourir vue Repository, je ne peux briser les serrures de particulier, pas les dossiers de manière récursive.

Comment puis-je faire sauter les verrous qui résident dans un référentiel. Je suis en utilisant TortoiseSVN sur Windows. Est-il une commande pour briser les verrous de manière récursive pour un dossier?

Ce qui concerne

63voto

vikkun Points 4017

OK j'ai compris.

  • Ce que j'ai fait, c'est que j'ai extrait une copie de travail.
  • Ensuite, allez dans le menu de l'explorateur, TortoiseSVN -> Vérifiez les modifications ...
  • Cliqué sur le bouton Vérifier le référentiel
  • Sélectionnez Tous les fichiers, cliquez avec le bouton droit de la souris et sélectionnez l'option de verrouillage de la rupture
  • Supprimez la copie de travail et celle du référentiel. Voila! :)

Cordialement

36voto

rgubby Points 639

Effectuer un nettoyage SVN libérera également le verrou:

 $ svn cleanup
 

18voto

VonC Points 414372

De la section de verrouillage avancé

 $ svn status -u
M              23   bar.c
M    O         32   raisin.jpg
       *       72   foo.h
Status against revision:     105
$ svn unlock raisin.jpg
svn: 'raisin.jpg' is not locked in this working copy
 

Cela signifie simplement que le fichier n'est pas verrouillé dans votre répertoire de travail actuel, mais s'il est toujours verrouillé au niveau du référentiel, vous pouvez forcer le déverrouillage ("briser le verrou").

 $ svn unlock http://svn.example.com/repos/project/raisin.jpg
svn: Unlock request failed: 403 Forbidden (http://svn.example.com)
$ svn unlock --force http://svn.example.com/repos/project/raisin.jpg
'raisin.jpg' unlocked.
 

(c'est ce que vous avez fait via l'interface graphique de TortoiseSVN)

7voto

Dan Points 31

Si quelqu'un d'autre a verrouillé les fichiers à distance, j'ai trouvé qu'en utilisant TortoiseSVN 1.7.11 pour effectuer les opérations suivantes avec succès déverrouillé dans ma copie de travail. (similaire à vikkun réponse)

  • Cliquez-droit sur la copie de travail > Vérifier les modifications
  • Cliquez sur bouton Vérifier le dépôt
  • Sélectionnez les fichiers que vous souhaitez déverrouiller
  • Clic droit > Obtenir un verrou
  • Cochez la case "Voler le verrou" case à cocher
  • Après le verrouillage de vol, sélectionnez de nouveau
  • Clic droit > verrouillage

Les fichiers de la copie de travail doit maintenant être déverrouillé.

2voto

Greg Rundlett Points 1

L'administrateur du référentiel peut supprimer les verrous (de manière récursive) en opérant sur des centaines de fichiers dans un répertoire problématique - mais uniquement par script car il n'y a pas d'option --recursive pour svnadmin rmlocks.

 $repopath=/var/svn/repos/myproject/;
$problemdirectory=trunk/bikeshed/
IFS=$'\n'; for f in $(sudo svnadmin lslocks $repopath $problemdirectory \
| grep 'Path: ' \
| sed "s/Path: \///") ; \
do sudo svnadmin rmlocks $repopath "$f" ; done
 

Cette solution fonctionne avec les noms de fichiers contenant des espaces.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X