J'avais un projet dans tfs au sein d'un projet d'équipe, puis nous avons déplacé le projet vers un emplacement différent dans un autre projet d'équipe.
J'avais configuré Jenkins pour se connecter au projet d'équipe et construire ma solution, mais lorsque j'ai modifié les paramètres pour se connecter au nouveau projet d'équipe tfs, l'erreur suivante est générée:
[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 et 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 cela m'a amené à dire que l'espace de travail avait été supprimé, mais je reçois toujours la même erreur.
J'ai également vérifié si le mappage avait é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 cela indique que l'espace de travail n'existe pas comme prévu.
Alors, j'ai pensé qu'il pourrait être en cache quelque part et a exécuté la commande ci-dessous:
tf workspaces /remove:* /collection:http://domain-eg.net:8080/tfs/oldteamproject
et il a indiqué "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, qu'est-ce qui cause l'erreur et comment le résoudre?
De VS:
À partir de VS sur une autre machine
Vous n'avez pas besoin de VS pour être sur le même ordinateur que l'enrôlement, vous pouvez éditer des enlistments à distance! Dans la boîte de dialogue qui apparaît lorsque vous appuyez sur l'élément "Espaces de travail ...", une case à cocher indiquant "Afficher les espaces de travail distants" est cochée. Cochez-la et vous obtiendrez une liste de toutes vos inscriptions:
À partir de la ligne de commande
Appelez "tf workspace" à partir d'une invite de commande du développeur. Il fera apparaître les "Gérer les espaces de travail" directement!
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és ici:
%LocalAppData%\Microsoft\Team Foundation\3.0\Cache
ou 4.0
, 5.0
, etc.
Suivez ces étapes pour supprimer le mappage de TFS:
team Explorer
Source Control
project
Remove Mapping
L'erreur est authentique. Vous avez peut-être créé un espace de travail avec le même nom sur une autre machine. Maintenant, vous avez peut-être changé de machine avec un nom de machine différent.
Il existe donc des solutions qui fonctionnent. Les procédures suivantes sont des solutions.
Veuillez suivre les étapes ci-dessous:
Ctrl + Run
Copier et Passé
%LocalAppData%\Microsoft\Team Foundation
Vous obtiendrez une version différente de TFS, par exemple, __.
Cliquez sur chaque dossier et vous obtiendrez
Maintenant, supprimez toutes les données de ce dossier.
Rouvrez le studio visuel.
Merci.
J'ai réussi à supprimer le mappage à l'aide de la commande/newowner, comme suggéré ici:
Comment puis-je retrouver l'accès à mon espace de travail Team Foundation Server?
La commande a ouvert une fenêtre Edit Workspace dans laquelle j'ai supprimé le mappage. Ensuite, j'ai supprimé l'espace de travail dont je n'avais pas besoin.
Mise à jour 2019-01-23
Si vous obtenez à plusieurs reprises l’erreur suivante The workspace wkspaceEg does not exist…
même après avoir utilisé le nom d’utilisateur correct (wkspcOwnerDomain\wkspcOwnerUsername
) dans la commande tf workspace
, par exemple,
tf workspace "wkspaceEg;wkspcOwnerDomain\wkspcOwnerUsername" /collection:http://tfs.example.com:8080/tfs/collectionEg /login:TFSUsername,TFSPassword
alors la commande tf workfold
peut aider à résoudre ce problème. Voir cette question .
Si même cela ne fonctionne pas et que vous ne pouvez pas/ne souhaitez pas utiliser TFS Sidekicks , passez à l’option risquée de dernier recours ci-dessous.
J'utilise TFS 2012. J'ai essayé tout ce qui était suggéré en ligne: dossier de cache supprimé, liste déroulante des espaces de travail, espaces de travail tf/remove: *, informations d'identification effacées du Panneau de configuration, IE, etc.
Rien n'a fonctionné, je pense 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 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 s'appelle Tfs_<<your_TFS_collection_name>>
. Ignorez la base de données Tfs_Configuration
MSSQL. Je ne suis pas sûr, mais si vous n'avez pas de base de données Tfs_<<your_TFS_collection_name>>
, les paramètres peuvent être dans la base de données Tfs_DefaultCollection
. 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>>
Aucune des réponses ici enlevé mes espaces de travail. Mais voici une solution qui peut fonctionner pour vous.
Enfin supprimé TOUS les espaces de travail et recommencer à zéro. Fixé.
On m'a demandé de 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 posé quelques problèmes et j'ai fini par mapper vers un dossier différent, ne réalisant pas que je venais de dupliquer tout mon contenu. À un moment donné, Visual Studio est revenu à mon utilisateur habituel, j'ai "perdu" les modifications en attente et j'ai remarqué que de nouvelles modifications en attente étaient placées dans mon ancien mappage.
Lorsque j'essayais de reconfigurer le nouvel emplacement (auquel le compte du SU était lié) pour tenter de récupérer les modifications en attente, cela me disait qu'il était déjà mappé sur le SU et je ne pouvais pas le faire, mais aucun moyen d'enlever la carte! Afficher les espaces de travail distants, en supprimant tous les espaces de travail via une ligne de commande, etc. n'a rien révélé. Je me suis alors dit "que se passe-t-il si, en fait, il est lié au compte d'utilisateur du SU sur mon ordinateur , pas au domaine." Je me suis connecté en tant que SU localement et, bien entendu, il existait un espace de travail entièrement configuré pour cet utilisateur. J'ai supprimé le mappage et j'ai pu retourner chez mon utilisateur habituel et le remapper sans problème.
Morale de l'histoire, peut-être qu'un autre utilisateur est connecté sur la même machine, qui n'est pas visible de l'utilisateur actuellement connecté. Vous ne pouvez donc pas supprimer ou même voir les mappages.
Il n'est pas nécessaire de supprimer tout le dossier du 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 de l'utilisateur/données de l'application. 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 de celui-ci, vous trouverez des dossiers nommés guid, ouvrez chacun d'eux, éditez 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 vers le serveur TFS (qui est n'est plus utilisé).
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". Vous pouvez ensuite modifier le dossier local.
Voici les étapes à suivre pour supprimer le mappage d'un projet de TFS:
(1) Cliquez sur le bouton Voir.
(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 Remove Mapping
(6) Enfin, supprimez le répertoire local du formulaire Projet.
Vous pouvez également supprimer un mappage tfs en modifiant simplement votre fichier .sln et en supprimant l'élément GlobalSection pour la liaison tfs.
Merci de votre aide!
Trouver un espace de travail problématique SELECT * FROM tbl_Workspace WHERE WorkspaceName comme "% xxxxx%"
Trouver l'espace de travail souhaité SELECT * FROM tbl_Workspace WHERE WorkspaceName comme '% zzzzz%'
Sélectionnez Modifier le top 200 tbl_WorkingFolder puis recherchez le mappage du problème SELECT * FROM tbl_WorkingFolder WHERE WorkspaceId = Problem WorkspaceId en haut
Remplacez WorkspaceId par le WorkspaceId souhaité
Enfin, allez dans l'Explorateur de projets et sélectionnez Supprimer le mappage dans le projet
Modifier VB6 MSSCCPRJ.SCC pour qu'il corresponde à l'espace de travail souhaité
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, à condition que vous disposiez des autorisations appropriées.
tf workspaces
Notez que les résultats peuvent lister quelques tables avec une structure identique. Si vous ne voyez qu'une table, certaines des hypothèses des autres réponses peuvent vous convenir. Cependant, si vous voyez deux ou plusieurs tables, la chaîne Collection est importante! Pour nos exemples, nous allons supposer que vous avez deux collections (deux n’est pas différent de quatre autres que l’un est plus fastidieux que l’autre pour le parcourir):
https://dev.Azure.com/foo
et https://bar.visualstudio.com/
Avec un peu de chance, vous saurez avec lequel de ces deux projets vous souhaitez travailler. Toutefois, si vous avez besoin de les parcourir tous, il vous suffira de faire cette collecte à la fois. Chaque "collection" est identique à une "organisation" dans Azure DevOps (je pense).
Si vous n'utilisez pas ce détail de la collection, un message d'erreur peut s'afficher:
Impossible de déterminer le serveur de contrôle de source.
tf workspaces /computer:* /owner:* /collection:https://dev.Azure.com/foo
Cela vous donnera une image beaucoup plus complète de ce que vous avez à faire. Cela devient particulièrement désagréable si plusieurs comptes de MSA et d’organisation ont touché 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 vos connaissances actuelles, cela risque de ne pas fonctionner. Mais nous pouvons obtenir plus d'informations.
/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 probablement le plus sont les alias de propriétaire. Ce sont les informations manquantes que vous devez maintenant parcourir et supprimer ces espaces de travail. Sans ces informations supplémentaires, il est facile de se heurter à un mur et d’être bloqué par un message d’erreur:
Spécifiez un espace de travail.
Maintenant, nous avons toutes les informations dont nous avons besoin. Étant donné les entrées additionnelles OwernAliases
, sélectionnez l’entrée unique (ou répétez-la si vous en avez plusieurs) que vous souhaitez supprimer et utilisez cette 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 permettent de gérer les espaces éventuellement présents 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. Certains de ces efforts effaceront les espaces de travail locaux, mais pas les espaces de travail du 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 difficiles, comme si vous passiez d'un compte MSA à un compte AAD. Et les choses deviennent VRAIMENT poilues si vous avez un compte MSA et plusieurs comptes AAD, tous avec la même adresse e-mail que vous avez utilisée depuis le même poste de travail. Et puis ça devient super fou quand plusieurs personnes utilisent 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, le nom du propriétaire et le nom de l'ordinateur (c'est-à-dire que la première requête sans formatage XML comportait 4 enregistrements identiques!).
Je ne sais pas s’il existe un moyen plus graphique de gérer cela. J'ai regardé et pas encore trouvé un meilleur moyen que cela.
Si les indices mentionnés ne vous aident pas, téléchargez Team Foundation Sidekick et utilisez-le pour supprimer les espaces de travail.
Tout d’abord, téléchargez et installez le plug-in Team Explorer sur votre système, puis accédez à Source Control Explorer. 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 mappés. Cliquez sur le bouton Supprimer et supprimez le mappage des espaces de travail requis.