Comment supprimer un mappage d'espace de travail TFS?

135

J'avais un projet en tfs dans un projet d'équipe, puis nous avons déplacé le projet vers un autre emplacement dans un autre projet d'équipe.

J'avais configuré Jenkins pour se connecter au projet d'équipe et créer ma solution, mais lorsque j'ai modifié les paramètres pour me connecter au nouveau projet d'équipe tfs, cela me donne l'erreur ci-dessous:

[workspace] $ "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\tf.exe" workspace -new Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/newteamproject ********
The path D:\jenkins\jobs\ProjectName1-Build\workspace is already mapped in workspace Hudson-ProjectName1-Build-MASTER [http://domain-eg.net:8080/tfs/oldteamproject].

Donc, ce qui précède montre qu'il existe un espace de travail existant, j'ai donc exécuté la commande ci-dessous pour le supprimer

tf workspace -delete Hudson-ProjectName1-Build-MASTER;domain1\username1 -noprompt -server:http://domain-eg.net:8080/tfs/oldteamproject

et il a incité que l'espace de travail a été supprimé mais j'obtiens toujours la même erreur.

J'ai également vérifié si le mappage a été supprimé ou non en exécutant la commande ci-dessous:

tf workspace -server:http://domain-eg.net:8080/tfs/oldteamproject Hudson-ProjectName1-Build-MASTER

mais il dit que l'espace de travail n'existe pas comme prévu.

Donc, j'ai pensé qu'il pourrait le mettre en cache quelque part et j'ai exécuté la commande ci-dessous:

tf workspaces /remove:* /collection:http://domain-eg.net:8080/tfs/oldteamproject

et il a dit "Aucun espace de travail dans le cache ne correspond * à partir du serveur http://domain-eg.net:8080/tfs/oldteamproject "

donc je suppose que ce n'est même pas mis en cache.

Alors, quelle est la cause de l'erreur et comment la résoudre?

La lumière
la source
3
Les espaces de travail TFS doivent contenir des mappages de dossiers de travail uniques par machine , pas seulement par utilisateur et par machine. Est-il possible que vous configuriez un espace de travail TFS contenant D:\jenkins\jobs\ProjectName1-Build\workspaceun autre utilisateur TFS lors du test?
Edward Thomson
9
Essayez ceci à partir de la machine de génération - C: \ Users \ {UserName} \ AppData \ Local \ Microsoft \ Team Foundation \ 3.0 \ Cache et supprimez tout ce qui se trouve dans le dossier
SoftwareCarpenter
Ran dans le même problème, mon cas était un espace blanc au début du nom de l'espace de travail
Daniel Rapaport
J'ai récemment remappé ma racine TFS et j'ai eu le même problème. Il s'avère que dans mon cas, l'explorateur TFS montrait simplement l'ancien (dernier) chemin que j'ai vérifié dans le "Chemin local:" et il était grisé et non cliquable (bleu). J'ai fait une mise à jour et il a tout mis dans le nouveau mappage correct, puis le chemin est devenu bleu / actif. Si vous avez supprimé tous les anciens mappages, il se peut qu'il affiche simplement le dernier dossier local dans lequel vous avez effectué une mise à jour la plus récente, ce qui n'est pas l'endroit où il placera maintenant les fichiers sous le nouveau mappage.
Rich M

Réponses:

196

De VS:

  1. Ouvrez Team Explorer
  2. Cliquez sur Explorateur de contrôle de source
  3. Dans la barre de navigation de la fenêtre d'outils, il y a une liste déroulante intitulée "Espaces de travail".
  4. Étendez-le et cliquez sur l'option "Espaces de travail ..." (ouais, un peu peu intuitif)
  5. La fenêtre "Gérer les espaces de travail" s'affiche. Cliquez sur modifier et vous pouvez ajouter / supprimer / modifier votre espace de travail

explorateur de contrôle de source

De VS sur une autre machine

Vous n'avez pas besoin que VS soit sur la même machine que l'enrôlement car vous pouvez modifier les inscriptions à distance! Dans la boîte de dialogue qui apparaît lorsque vous appuyez sur l'élément "Espaces de travail ...", il y a une case à cocher indiquant "Afficher les espaces de travail distants" - cochez simplement cela et vous obtiendrez une liste de toutes vos inscriptions:

afficher les espaces de travail distants

Depuis la ligne de commande

Appelez "tf workspace" à partir d'une invite de commande développeur. Il fera apparaître directement la "Gérer les espaces de travail"!

Bogdan Gavril MSFT
la source
1
Il fait cela sur une machine de construction et n'a probablement pas installé de studio visuel.
Erik Funkenbusch
7
Merci que cela fonctionne, encore une autre raison pour laquelle TFS est horrible.
schmoopy
6
J'ai supprimé tous les espaces de travail. puis ajouté un nouveau, obtenant à nouveau l'erreur que mon dossier est déjà mappé à un wrokspace (ancien / supprimé) url tfs. Impossible de mapper vers le nouveau tfs / espace de travail. M en utilisant vs 2015
Sami
11
Ça ne marche pas. L'espace de travail reste quoi qu'il arrive. redémarrer, redémarrer vs, prier, cliquer sur les talons ensemble 3x ... rien ... ne partira pas. Impossible de mapper vers le nouveau ... ne peut pas fonctionner.
Beau D'Amore
3
C'est la réponse la mieux notée, mais elle n'aborde pas le scénario où l'espace de travail ne sera PAS supprimé (comme Beau mentionné ci-dessus). Vous le supprimez, fermez la boîte de dialogue, ouvrez à nouveau et c'est de retour. Absolument exaspérant.
dapug
123

J'ai rencontré le même problème et j'ai pu le résoudre en supprimant manuellement tous les fichiers du cache TFS, situé ici:

%LocalAppData%\Microsoft\Team Foundation\3.0\Cache

ou 4.0, 5.0, etc.

brainiac10
la source
4
Merci, cela fonctionne pour moi car mes données locales mises en cache tfs n'étaient pas synchronisées lorsque mon entreprise a changé le nom de domaine du réseau.
dsum le
5
Pas pour moi. Il me dit toujoursthe path is already mapped in workspace {mypcname};domain\zhasan
SearchForKnowledge
5
J'avais un \ 4.0 \ Cache et \ 5.0 \ Cache dont je me suis débarrassé. Au cas où cela aiderait quelqu'un.
fooser le
1
Cela a fonctionné pour moi aussi. Conseil de pro, avant de supprimer les fichiers du Cachedossier, prenez une minute pour copier tous les fichiers et dossiers et conservez-les dans un dossier de sauvegarde, juste au cas où cela ne fonctionnerait pas pour vous et que vous deviez restaurer votre TFS à son état précédent .
Shiva
En fait, vous pouvez tout supprimer Team Foundationsi vous souhaitez effectuer une nouvelle synchronisation.
Supersharp
21

Suivez ces étapes pour supprimer le mappage de TFS:

  1. Ouvert team explorer
  2. Cliquez sur Source Control
  3. Faites un clic droit sur vous project
  4. Cliquer sur Remove Mapping
Ken Clark
la source
6
Aucune option pour supprimer le mappage .. toujours face à l'erreur que votre dossier est déjà mappé à un espace de travail d'une ancienne url tfs / supprimée .. M en utilisant vs 2015
Sami
1
N'existe pas dans Visual Studio Premium 2013
damd
1
Je pense que cette option n'est disponible que lorsque vous ciblez le dossier mappé à l'origine. Donc, si je mappe un projet d'équipe entier avec la récursivité, je ne peux démapper que le projet d'équipe entier, alors que si je mappe simplement le dossier de solution, je peux ensuite démapper cela assez heureusement.
Jeff
@Sami Après un clic droit sur votre projet, vous Remove Mappingverrez sous la Advancedsection
Uday
11

L'erreur est authentique. Vous avez peut-être créé un espace de travail avec le même nom sur une machine différente. Maintenant, vous avez peut-être changé de machine avec un nom de machine différent.

Voici donc une solution de contournement qui fonctionnera certainement.

  1. Allez dans "Team-Explorer"
  2. Allez dans "Contrôle de la source"
  3. Accédez à la liste déroulante de l'espace de travail
  4. Cliquez sur "Workspaces ..."
  5. Une fenêtre pop-up apparaîtra
  6. Cliquez sur "Afficher les espaces de travail distants"
  7. Supprimez maintenant l'espace de travail qui est en conflit et vous pouvez continuer votre travail.
smthakur19
la source
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses aux liens uniquement peuvent devenir invalides si la page liée change.
alextansc
le lien fonctionnera désormais correctement. Merci alextansc
smthakur19
@ smthakur19 ce qu'Alex a essayé de dire, c'est que si un jour ce lien n'est plus disponible (site Web en panne, page supprimée, etc.), cette réponse sera inutile. Ce serait donc bien d'inclure le texte et le code essentiels du lien référencé et de les inclure dans la réponse à tous. Ainsi, la source de la réponse et la question seront toutes les deux SO.
Beytan Kurt
explication élaborée, mais je n'ai pas pu ajouter d'images car ma réputation est inférieure à 10.
smthakur19
1
lien cassé, la procédure ne fonctionne PAS. L'espace de travail reste
Beau D'Amore
7

Veuillez suivre les étapes ci-dessous:

Ctrl + Run 

Copier et coller

%LocalAppData%\Microsoft\Team Foundation

Vous obtiendrez une version différente de TFS, par exemple entrez la description de l'image ici

Cliquez sur chaque dossier et vous obtiendrez

entrez la description de l'image ici

Maintenant, supprimez toutes les données de ces dossiers.

Rouvrez le studio visuel.

Merci.

Satish Singh
la source
4

Mise à jour 23/01/2019

Si vous obtenez l'erreur suivante à plusieurs reprises The workspace wkspaceEg does not exist…même après avoir utilisé le nom d'utilisateur correct ( wkspcOwnerDomain\wkspcOwnerUsername) dans la tf workspacecommande, par exemple,

tf workspace "wkspaceEg;wkspcOwnerDomain\wkspcOwnerUsername" /collection:http://tfs.example.com:8080/tfs/collectionEg /login:TFSUsername,TFSPassword

alors la tf workfoldcommande peut aider à le réparer. Voir cette question .

Si même cela ne fonctionne pas et que vous ne pouvez / ne voulez pas utiliser TFS Sidekicks , passez à l'option risquée de dernier recours ci-dessous.


J'utilise TFS 2012. J'ai essayé tout ce qui a été suggéré en ligne: dossier de cache supprimé, utilisé le menu déroulant des espaces de travail, tf workspaces / remove: *, effacement des informations d'identification du panneau de configuration, IE, etc.

Rien n'a fonctionné, je crois que mon espace de travail a été corrompu d'une manière ou d'une autre. Enfin, je suis allé à la base de données TFS et j'ai exécuté les requêtes suivantes. Ç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 est appelée Tfs_<<your_TFS_collection_name>>. Ignorez la Tfs_Configurationbase de données MSSQL. Je ne suis pas sûr, mais si vous n'avez pas de Tfs_<<your_TFS_collection_name>>base de données, les paramètres peuvent être dans la Tfs_DefaultCollectionbase de données. Le mappage est stocké dans tbl_WorkingFolder.LocalItem.

/*Find correct workspace*/
SELECT WorkspaceId, *
FROM tbl_Workspace
ORDER BY WorkspaceName

/*View the existing mapping*/
SELECT LocalItem, *
FROM tbl_WorkingFolder
WHERE WorkspaceId = <<WorkspaceId from above>>

/*Update mapping*/
UPDATE tbl_WorkingFolder
SET LocalItem = 'D:\Legacy.00\TFS\Source\Workspaces\teamProjEg' WHERE
/*LocalItem = NULL might work too but I haven't tried it*/
WorkspaceId = <<WorkspaceId from above>>
Dennis T --Reinstate Monica--
la source
2

Aucune des réponses ici n'a supprimé mes espaces de travail. Mais voici une solution qui peut fonctionner pour vous.

  1. Ouvrez une invite de commandes Visual Studio
  2. Fermez d'abord Visual Studio ou la commande de suppression ne peut pas supprimer l'espace de travail
  3. Listez les commandes de l'espace de travail -> tf /? pour trouver les commandes disponibles dans la version de TFS.
  4. Lister les espaces de travail -> espaces de travail tf
  5. Supprimer l'espace de travail -> tf workspace Votre espace de travail / supprimer
Chris Cuciak
la source
C'est la voie à suivre si vous avez deux espaces de travail avec le même nom mais pour des utilisateurs différents (par exemple votre compte normal et un compte administrateur). Ces deux espaces de travail n'apparaîtront pas sous forme de deux espaces si vous ouvrez la vue "Espaces de travail" comme indiqué dans les autres réponses - seule celle de l'utilisateur actuel sera répertoriée. Dans mon cas, c'était alors le deuxième espace de travail (pour le compte admin) qui bloquait les opérations. Si vous faites comme décrit dans cette réponse, l'étape 5 vous permettra de supprimer le deuxième espace de travail à l'aide de "tf workspace YourWorkspace; HiddenUser / delete".
H. Breitkreutz
2

Vous n'êtes pas obligé de supprimer tout le dossier Cache. vous perdez tous les paramètres / préférences Les mappages d'espace de travail sont stockés dans un fichier appelé:

VersionControl.config sous le répertoire des paramètres locaux / données d'application des utilisateurs. situé ici dans Windows 7:

% LocalAppData% \ Microsoft \ Team Foundation \ x.0 \ Cache \ Volatile

où x = 3,0,4,0, 5,0,6,0 etc.

À l'intérieur, vous trouverez des dossiers nommés guid, ouvrez chacun d'eux, en éditant manuellement le fichier susmentionné, pour supprimer le mappage de l'espace de travail (le chemin du répertoire sera présent dans l'attribut mappedpaths) de ce dossier local au serveur TFS (qui n'est plus utilisé ).

Sundara Prabu
la source
1

Enfin supprimé TOUS les espaces de travail et reparti de zéro. Fixé.

homme souriant
la source
1

J'ai été invité à me connecter à notre serveur TFS via Visual Studio, j'ai donc utilisé mon compte SU qui est généralement requis pour l'accès au serveur. Cela a conduit à des problèmes et j'ai fini par mapper vers un dossier différent, sans me rendre compte que je venais de dupliquer toutes mes affaires. À un moment donné, Visual Studio est revenu à mon utilisateur normal, j'ai «perdu» les modifications en attente et j'ai remarqué que de nouvelles modifications en attente avaient été placées dans mon ancien mappage.

Lorsque j'essayais de remapper vers le nouvel emplacement (auquel le compte SU était lié) pour tenter de récupérer mes modifications en attente, cela me disait qu'il était déjà mappé à la SU, et je ne pouvais pas le faire, mais j'avais aucun moyen de supprimer la carte! Afficher les espaces de travail distants, supprimer tous les espaces de travail via la ligne de commande, etc. n'a rien révélé. J'ai alors pensé "et si c'était réellement lié au compte d'utilisateur SU sur mon ordinateur , pas au domaine." Je me suis connecté en tant que SU localement, et bien sûr, il y avait un espace de travail tout configuré pour cet utilisateur. J'ai supprimé le mappage et j'ai pu revenir à mon utilisateur régulier et remapper sans problème.

Morale de l'histoire, peut-être qu'un autre utilisateur est connecté sur la même machine, ce qui n'est pas visible de l'utilisateur actuellement connecté, vous ne pouvez donc pas supprimer ni même voir les mappages.

Tyler StandishMan
la source
1

Si les indices mentionnés ne vous aident pas, téléchargez Team Foundation Sidekick et utilisez-le pour supprimer les espaces de travail.

M. N. Das
la source
1

Fichier -> Contrôle de la source -> Avancé -> Espaces de travail -> Choisissez l'espace de travail dans Gérer les espaces de travail et cliquez sur "Modifier" Ensuite, vous pouvez modifier le dossier local.

Ahmed Elshiekh
la source
1

Toutes les réponses ici semblent être des réponses partielles qui ne fonctionnent pas dans tous les cas. Je pense que cette réponse fonctionnera dans tous les cas, en supposant que vous ayez les autorisations appropriées.

  1. Ouvrez l'invite de commande du développeur. Dans mon cas, j'ai testé cela avec l'invite de commande du développeur pour VS 2019.
  2. Tapez cette commande: tf workspaces

Notez que les résultats peuvent lister quelques tables avec une structure identique. Si vous ne voyez qu'un seul tableau, alors certaines des hypothèses des autres réponses peuvent fonctionner pour vous. Cependant, si vous voyez deux tables ou plus, cette chaîne de collection est importante! Pour nos exemples, nous allons supposer que vous avez deux collections (deux ne sont pas différentes de quatre autres que l'une est plus fastidieuse que l'autre pour la parcourir):

https://dev.azure.com/foo et https://bar.visualstudio.com/

Avec de la chance, vous saurez avec lequel de ces deux vous souhaitez travailler. Cependant, si vous avez besoin de tous les parcourir, vous n'aurez qu'à faire cette collection à la fois. Chaque «collection» ici est la même qu'une «organisation» dans Azure DevOps (je pense).

Si vous n'utilisez pas ce détail de collection, un message d'erreur peut s'afficher:

Impossible de déterminer le serveur de contrôle de source.

  1. Ensuite, tapez cette commande pour la collection que vous souhaitez utiliser:

tf workspaces /computer:* /owner:* /collection:https://dev.azure.com/foo

Cela vous donnera une image beaucoup plus complète de ce à quoi vous avez affaire. Cela devient particulièrement désagréable si vous avez eu plusieurs comptes MSA et organisation sur ce dépôt à partir du même ordinateur. En fait, vous pouvez avoir plusieurs entrées apparemment identiques. Si vous essayez de les supprimer en fonction de ce que vous savez actuellement, cela risque de ne pas fonctionner. Mais nous pouvons obtenir plus d'informations.

  1. Ensuite, nous allons exécuter la même commande mais ajouter /format:xmlà la fin de celle-ci:

tf workspaces /computer:* /owner:* /collection:https://dev.azure.com/foo /format:xml

Cela vous donne maintenant un tas de XML avec quelques propriétés supplémentaires. Ceux qui nous intéressent le plus sont probablement les alias de propriétaire. Ce sont les informations manquantes dont vous avez besoin pour parcourir et supprimer ces espaces de travail. Sans ces informations supplémentaires, il est facile de frapper un mur et d'être coincé avec un message d'erreur:

Spécifiez un espace de travail.

  1. Nous avons maintenant toutes les informations dont nous avons besoin. Compte tenu des OwernAliasesentrées supplémentaires , sélectionnez l'entrée unique (ou répétez si plus d'une) que vous souhaitez supprimer et utilisez la commande suivante (quelques exemples sont répertoriés):

    • tf workspace /delete /collection:https://dev.azure.com/foo "MyWorkspaceName;Windows Live ID\[email protected]"
    • tf workspace /delete /collection:https://dev.azure.com/foo "MyWorkspaceName;John Doe"
    • tf workspace /delete /collection https://dev.azure.com/foo "MyWorkspaceName;2C3E8474-A39C-4785-8794-DC72F09981E6\[email protected]"

Le GUID identifie un répertoire AAD et les guillemets sont là pour gérer tous les espaces qui pourraient être dans un alias. Le "MyWorkspaceName" provient de vos requêtes précédentes listant les espaces de travail.


Sans cette approche très approfondie, il est possible que toutes les autres réponses à cette question échouent pour vous. Bien que certains de ces efforts effacent les espaces de travail locaux, ils n'effaceront pas les espaces de travail serveur, avec lesquels vous pouvez toujours entrer en conflit. De plus, si vous avez déjà utilisé un compte différent, les choses peuvent devenir épineuses, comme si vous passiez d'un compte MSA à un compte AAD. Et les choses deviennent VRAIMENT poilues si vous avez un compte MSA etplusieurs comptes AAD, tous avec la même adresse e-mail que vous avez utilisée à partir du même poste de travail. Et puis ça devient super fou si plusieurs d'entre eux utilisent tous le nom par défaut de l'espace de travail: le nom d'hôte de votre ordinateur. Dans mon cas, j'avais quatre espaces de travail avec tous le même nom d'espace de travail, le même nom de propriétaire et le même nom d'ordinateur (c'est-à-dire que la première requête sans le formatage XML avait 4 enregistrements identiques!).


Je ne sais pas s'il existe un moyen plus graphique de gérer ces derniers que celui-ci. J'ai cherché et n'ai pas encore trouvé un meilleur moyen que celui-ci.

Jaxidian
la source
0

Vous pouvez également supprimer un mappage tfs en éditant simplement votre fichier .sln et en supprimant l'élément GlobalSection pour la liaison tfs.

CalCof
la source
0

Merci de votre aide!

Rechercher l'espace de travail problématique SELECT * FROM tbl_Workspace WHERE WorkspaceName comme '% xxxxx%'

Rechercher l'espace de travail souhaité SELECT * FROM tbl_Workspace WHERE WorkspaceName comme '% zzzzz%'

Sélectionnez Edit Top 200 tbl_WorkingFolder puis recherchez le mappage de problème SELECT * FROM tbl_WorkingFolder WHERE WorkspaceId = Problem WorkspaceId ci-dessus

Remplacez WorkspaceId par le WorkspaceId souhaité

Enfin, accédez à l'Explorateur de projet et sélectionnez Supprimer le mappage sur le projet

Modifiez VB6 MSSCCPRJ.SCC pour correspondre à l'espace de travail souhaité

vmaynard
la source
0

Commencez par télécharger et installer le plug-in Team Explorer sur votre système, puis accédez à l'explorateur de contrôle de source. Dans le volet de navigation, recherchez le champ Espace de travail et cliquez sur l'option Espaces de travail. Après avoir cliqué sur l'option Espaces de travail, vous verrez tous les espaces de travail qui sont mappés. Cliquez sur le bouton Supprimer et supprimez le mappage des espaces de travail requis.

Arpit Raizada
la source
0

Exécutez tf workspacespour afficher les mappages d'espaces de travail actuels. La sortie ressemble à:

entrez la description de l'image ici

Puis cours tf workspace /delete "{workspace};{user}

En utilisant la sortie ci-dessus, pour supprimer l'espace de travail bi:

tf workspace /delete bi;James Wierzba

James Wierzba
la source
Cela ne fonctionne pas pour moi. J'obtiens l'erreur suivante: Une erreur d'argument s'est produite: un nom d'espace de travail est requis pour supprimer un espace de travail.
Red M du
0

Voici les étapes pour supprimer le mappage d'un projet de TFS:

(1) Cliquez sur le bouton Afficher.

(2) Ouvrez Team Explorer

(3) Cliquez sur Contrôle de la source

(4) Faites un clic droit sur votre projet / répertoire

(5) Cliquez sur Supprimer le mappage

(6) Enfin, supprimez le répertoire local du formulaire Projet.

FARHAN KHAN
la source
0

Explorateur d'équipe> Explorateur de contrôle de code source>

TFS Supprimer MAPPING

Deepu Reghunath
la source