lundi 13 octobre 2008

Step By Step : Déverouillage de fichiers dans le Controle de Code Source TFS

Un problème rencontré de manière récurrente sur projet est le verrouillage d'un ou plusieurs fichiers suite à une opération de check out, souvent cumulé à l'absence de son auteur. Conséquence, il devient impossible de continuer à travailler sur ce fichier, à moins de procéder administrativement à son déverouillage.

Malheuresement, jusqu'à la version 2008, il n'existe pas de méthode utilisant l'interface graphique, en revanche il est extrêmement simple de le faire à l'aide de l'invite de commande Visual Studio tel que démontré ci dessous ou encore d'utiliser l'utilitaire Sidekick. Nous allons donc décrire les deux méthodes.

Méthode 1 : Exécution en mode ligne de commandes
Dans notre scénario, un développeur nommé John Doe a laissé en check out des fichiers projets dont notamment un fichier csproj, bloquant donc toute modification de ce projet (Ajout ou suppression de fichiers).
Pour débloquer une telle situation, il suffit de procéder comme suit :
La fenêtre du Source Control Explorer permet de visualiser les fichiers verrouillés, avec le nom du développeur dans la colonne user :

On lance l'invite de commande Visual Studio 2008 à partir du menu Démarrer

Tout d’abord, on liste les Workspaces gérés par le serveur TFS, ce qui permettra de copier coller dans la commande finale le nom du Workspace ainsi que le nom de l’owner du Workspace, pour cela il suffit de taper la commande :

tf workspaces /server:NomServeur /owner:*

soit dans le cadre de notre exemple :

tf workspaces /server:Avanade_TFS2008 /owner:*

L’output de la console sera le suivant, il suffit alors de localiser le Workspace concerné, dans notre exemple ici le 2° :

On utilise le marqueur de la console pour copier / coller le nom du Workspace et son owner

On colle le contenu pour obtenir la commande suivante :

tf workspace /delete /server :NomServeur NomWorkspace ;NomOwner

soit dans le cadre de notre exemple :

tf workspace /delete /server :Avanade_TFS2008 CPU_TeamDev02 ;Avanade_TFS2008\John_Doe

Après validation, l'invite de commande affiche le nombre de fichiers en cours de modification dans le Workspace ciblé, puis une confirmation est demandée, Taper simplement Y pour valider

Pour vérification, un simple refresh de la fenêtre du Source Control Explorer permet de constater le déverrouillage des fichiers du Workspace du développeur John Doe

Méthode 2 : Utilisation de SideKicks

Dans ce scénario, le pré-requis est l'installation de Sidekick sur le poste d'intervention. Cet outil est en téléchargement gratuit sur internet.

Tout d'abord, on localise les fichiers lockés dans le source Control

Puis utiliser le menu Tools, Team Foundation Sideckics / Workspace Sidekick

La fenêtre suivante apparait, il suffit de filtrer sur le nom du développeur, entrer le nom de la machine du développeur puis cliquer sur le bouton Search

Le Workspace apparait ainsi que les dossiers apparaissent dans les listes résultats, il suffit de cliquer sur le bouton supprimer pour détruire ce workspace au niveau de TFS, puis refermer cette fenêtre.

Pour vérification, un simple refresh de la fenêtre du Source Control Explorer permet de constater le déverrouillage des fichiers du Workspace du développeur.

4 commentaires:

Alexandre a dit…

Très intéressant ce billet ! Merci pour l'astuce :)

C'est vraiment bizard qu'il ne propose pas une manipulation à travers de l'IDE pour faire ce genre d'opération ! Même avec Visual SourceSafe c'est possible.

Xavier a dit…

Salut,

je ne connaissais pas la commande merci.

Pour répondre a Alexandre, il existe un petit utilitaire "Team Foundation Sidekicks" qui permet de faire cela via une interface IDE.

arno a dit…

Et pourquoi ne pas utiliser TFS SideKick qui le fait nativement (depuis la version 2005) !

arno

Philippe PUSCHMANN a dit…

Merci pour ces retours, l'article est mis à jour avec Sidekick.