Question

Quelqu'un a quitté l'organisation, mais avant de partir, il a verrouillé tous les fichiers pour une raison inconnue.

Comment les déverrouillez-vous tous pour que les autres développeurs puissent travailler?

Était-ce utile?

La solution

Pour l'opération suivante, vous devez être un administrateur de projet pour le projet sur lequel vous souhaitez annuler l'enregistrement ou un administrateur Team Foundation si vous souhaitez le faire pour tous les projets.

Si vous avez toujours le nom d'utilisateur de la personne, vous pouvez simplement faire quelque chose comme ceci:

  • Ouvrez l'invite de commande Visual Studio (Démarrer - > Programmes - > Microsoft Visual Studio 200X - > Outils Visual Studio - > Invite de commandes Visual Studio 200X)
  • Exécutez la commande suivante:
  

tf verrouiller / verrouiller: aucun   / workspace: WorkspaceName; USERNAME   / récursif $ /

Pour obtenir la liste des espaces de travail d'un utilisateur, exécutez la commande suivante à partir de la même invite:

  

espaces de travail tf / propriétaire: nom d'utilisateur

Pour plus de commandes, vérifiez tf /?

Autres conseils

Si le développeur a quitté l'organisation, la meilleure chose à faire est de supprimer ses espaces de travail. Cela déverrouillera les fichiers pour vous mais libérera également des ressources sur le serveur.

Voir le billet suivant que j'ai écrit sur le sujet quand cela m'est arrivé il y a quelques années.

http://www.woodwardweb.com/vsts/unlocking_files.html

Vous pouvez supprimer l'espace de travail à l'aide de la ligne de commande (tf.exe) ou de l'excellent TFS Sidekicks de Attrice.

C’est la seule façon pour moi de résoudre ce problème, qui consiste à supprimer l’espace de travail de l’utilisateur:

http://2toad.com/Blog/ 2012/1/27 / procédures de gestion des espaces de travail tfs

Si le message d'erreur indique & "L'élément $ / ... est verrouillé pour l'extraction par un utilisateur: 1 dans l'espace de travail un_machine123. &"; alors j'utilise la commande:

tf workspace /delete /server:http://machinename:8080/tfs/DefaultCollection someMachine123;someUser:1

Il n'y a qu'un seul espace entre l'URL de la collection et someMachine123;someUser:1.

Notez que j'ai prêté attention au fait que le message d'erreur mentionnait l'utilisateur comme someUser:1, je l'ai donc imité dans la commande. Il ne suffisait pas d’exécuter la commande avec someUser uniquement. Je ne suis pas sûr de ce que le: 1 est tout au sujet de mais au sujet de l'être, imitez le message d'erreur.

Notez que le serveur doit être le chemin de collecte qualifié complet, que vous pouvez trouver en accédant à la console d'administration de Team Foundation Server - > Niveau d'application - > Collections de projets d'équipe, le volet inférieur affiche une URL pour la collection sélectionnée dans le volet supérieur.

J'ai également eu un problème parce que j'ai accidentellement essayé d'utiliser le pluriel workspaces au lieu de workspace car il existe une commande similaire au pluriel.

d'abord, vous devez avoir le droit de le faire. Si vous préférez, le plus simple consiste à utiliser les options TFS de attrice http://www.attrice.info/ cm / tfs /

J'avais besoin d'ajouter / collection: collectionURL, sinon l'espace de travail est introuvable:

  • Élément de liste

tf loc / lock: aucun / espace de travail: nom de l'espace de travail; nom de l'utilisateur / collection: collectionURL

Voici une explication sur l'utilisation des autorisations TFS.

  

Avoir le " Déverrouiller les modifications d’autres utilisateurs "   autorisation définie sur Autoriser est requise pour   supprimer un verrou détenu par un autre utilisateur.

Demandez à un administrateur système de réinitialiser le mot de passe de cet utilisateur, connectez-vous en tant que cet utilisateur, déverrouillez tous les fichiers ...

Je pense que c'est la solution à presque toutes les questions "quelqu'un qui n'est plus dans cette organisation" ...

Il est préférable de supprimer l'espace de travail de cet utilisateur du serveur. exemple

tf espace de travail / delete / server: votre espace de travail serveur_tfs_server; nom d'utilisateur

Parfois, cela masque un problème différent avec une application complètement différente qui est verrouillée par un autre utilisateur, mais vous ne pouvez même pas créer un nouveau dossier pour le nouveau projet dans lequel vous souhaitez fusionner (la cible ne permet pas la création et indique à tort que quelqu'un a un fichier verrouillé à son nom), mais ensuite, on creuse plus loin et un autre projet est le coupable.

Un projet complètement différent peut donc poser problème en raison du verrouillage du fichier par quelqu'un d'autre.

Méthode qui a fonctionné pour moi, mon compte dispose des droits d'administrateur sur TFS et le projet:

.

Dans Visual studio 2015:

  1. Accédez à Team Explorer
  2. .
  3. Cliquez à droite sur votre solution et choisissez Ouvrir dans le contrôle de source exportateur
  4. Sur le côté gauche, cliquez à droite sur votre solution
  5. Choisissez Avancé
  6. Choisissez Verrouiller ...
  7. Sur le côté gauche, cliquez à droite sur votre solution
  8. Choisissez Avancé
  9. Choisissez Déverrouiller (vous pouvez maintenant choisir de déverrouiller)

À l'heure actuelle, chaque développeur peut facilement appliquer ses modifications:)

Utilisez cette solution en dernier recours .

I & # 8217; J'utilise TFS 2012. Je me suis rendu dans la base de données TFS et j'ai exécuté les requêtes suivantes. Et ça a marché! Bien sûr, soyez très prudent lorsque vous manipulez la base de données, effectuez des sauvegardes, etc.

La base de données s'appelle Tfs _ < < votre_nom_collection_TFS > > . Ignorez la base de données MSSQL Tfs_Configuration . Je ne suis pas sûr, mais si vous n'avez pas de base de données Tfs _ & Lt; & Lt; your_TFS_collection_name & Gt; & Gt; , les paramètres peuvent se trouver dans la < em> Tfs_DefaultCollection . Les verrous sont stockés dans tbl_PendingChange.LockStatus .

/*Find correct row*/
SELECT LockStatus, PendingChangeId, *
FROM tbl_PendingChange
WHERE TargetServerItem like '%<<fileName>>%'

/*Set lock status to NULL (mine was set to 2 initially)*/
UPDATE tbl_PendingChange SET LockStatus = NULL WHERE
TargetServerItem like '%<fileName>>%'
AND PendingChangeId = <<PendingChangeId from above>>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top