Como remover um mapeamento do espaço de trabalho do TFS?


135

Eu tinha um projeto no tfs dentro de um projeto de equipe e depois o mudamos para um local diferente em outro projeto de equipe.

Eu havia configurado o Jenkins para conectar-se ao projeto de equipe e criar minha solução, mas quando alterei as configurações para conectar-se ao novo projeto de equipe tfs, ele me deu o erro abaixo:

[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].

Portanto, o acima mostra que existe um espaço de trabalho, então executei o comando abaixo para removê-lo

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

e solicitou que o espaço de trabalho foi removido, mas ainda estou recebendo o mesmo erro.

Também verifiquei se o mapeamento foi removido ou não, executando o comando abaixo:

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

mas diz que o espaço de trabalho não existe conforme o esperado.

Então, pensei que poderia estar armazenando em cache em algum lugar e executei o comando abaixo:

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

e dizia "Nenhum espaço de trabalho no cache corresponde * ao servidor http://domain-eg.net:8080/tfs/oldteamproject "

então acho que nem é armazenado em cache.

Então, o que está causando o erro e como resolvê-lo?


3
Os Espaços de Trabalho TFS devem conter mapeamentos de pastas de trabalho exclusivos por máquina , não apenas por usuário e máquina. É possível que você configure um espaço de trabalho do TFS que contenha D:\jenkins\jobs\ProjectName1-Build\workspacecomo outro usuário do TFS durante o teste?
Edward Thomson

9
Tente isto da máquina de compilação - C: \ Users \ {username} \ AppData \ Local \ Microsoft \ Team Foundation \ 3.0 \ Cache e apagar tudo o que está na pasta
SoftwareCarpenter

Deparou-se com o mesmo problema, meu caso era um espaço em branco no início do nome da área de trabalho
Daniel Rapaport

Recentemente remapeei minha raiz do TFS e tive o mesmo problema. Acontece que, no meu caso, o TFS explorer estava apenas mostrando o antigo (último) caminho no qual fiz check-out no "Local Path:" e estava acinzentado e não clicável (azul). Fiz uma atualização e colocou tudo no novo mapeamento correto e o caminho ficou azul / ativo. Se você excluiu todos os mapeamentos antigos, ele pode estar apenas mostrando a última pasta local que você conseguiu obter, que não é onde colocará os arquivos agora no novo mapeamento.
Rich M

Respostas:


196

De VS:

  1. Abra o Team Explorer
  2. Clique em Source Control Explorer
  3. Na barra de navegação da janela da ferramenta, há um menu suspenso "Áreas de trabalho".
  4. Estenda-o e clique na opção "Espaços de trabalho ..." (sim, um pouco intuitivo)
  5. A janela "Gerenciar áreas de trabalho" é exibida. Clique em editar e você pode adicionar / remover / editar sua área de trabalho

explorador de controle de origem

Do VS em uma máquina diferente

Você não precisa que o VS esteja na mesma máquina que o alistamento, pois você pode editar os alistamentos remotos! Na caixa de diálogo exibida quando você pressiona o item "Áreas de trabalho ...", há uma caixa de seleção indicando "Mostrar áreas de trabalho remotas" - marque essa opção e você obterá uma lista de todos os seus alistamentos:

mostrar áreas de trabalho remotas

Na linha de comando

Chame "tf workspace" em um prompt de comando do desenvolvedor. Ele exibirá os "Gerenciar áreas de trabalho" diretamente!


1
Ele está fazendo isso em uma máquina de compilação e provavelmente não tem o visual studio instalado lá.
Erik Funkenbusch

7
Graças a isso funciona, mais um motivo pelo qual o TFS é péssimo.
schmoopy

6
Eu removi todos os espaços de trabalho. Em seguida, foi adicionado um novo erro, novamente, de que minha pasta já está mapeada para um URL (tfs antigo / removido) de wrokspace. Não foi possível mapear para o novo tfs / espaço de trabalho. M usando vs 2015
Sami

11
Não funciona O espaço de trabalho permanece, não importa o quê. reiniciar, reiniciar vs, rezar, clicar juntos 3x ... nada ... não vai sair. Não é possível mapear para novo ... não pode funcionar.
Beau D'Amore

3
Essa é a resposta com a classificação mais alta, mas não aborda o cenário em que o espaço de trabalho NÃO será excluído (como Beau mencionou acima). Você o remove, fecha a caixa de diálogo, abre novamente e está de volta. Absolutamente enlouquecedor.
dapug

123

Eu encontrei o mesmo problema e consegui corrigi-lo excluindo manualmente todos os arquivos no cache do TFS, localizados aqui:

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

ou 4.0, 5.0etc.


4
Obrigado, isso funciona para mim porque meus dados em cache do tfs local estavam fora de sincronia quando minha empresa alterou o nome de domínio da rede.
DSoma

5
Não para mim. Ainda está me dizendothe path is already mapped in workspace {mypcname};domain\zhasan
SearchForKnowledge

5
Eu tinha um \ 4.0 \ Cache e \ 5.0 \ Cache do qual me livrei. Caso isso ajude alguém.
fooser

1
Isso funcionou para mim também. Dica profissional: antes de excluir os arquivos da Cachepasta, reserve um minuto para copiar todos os arquivos e pastas e mantê-los em uma pasta de backup, para o caso de não funcionar e você precisar restaurar o TFS para o estado anterior .
Shiva

Na verdade, você pode excluir tudo o que estiver abaixo Team Foundationse desejar executar uma nova sincronização limpa.
Supersharp

21

Siga estas etapas para remover o mapeamento do TFS:

  1. Abrir team explorer
  2. Clique Source Control
  3. Botão direito do mouse em você project
  4. Clique em Remove Mapping

6
Nenhuma opção para remover o mapeamento .. ainda enfrentando o erro de que sua pasta já está mapeada para algum espaço de trabalho de um URL de tfs antigo / removido .. M using vs 2015
Sami

1
Não existe no Visual Studio Premium 2013
damd 29/03

1
Eu acho que essa opção está disponível apenas ao direcionar a pasta mapeada originalmente. Portanto, se eu mapear um projeto de equipe inteiro com recursão, só posso remover o mapeamento de todo o projeto de equipe, enquanto que, se apenas mapear a pasta da solução, posso remover o mapeamento com a mesma satisfação.
Jeff

@Sami Depois de clicar com o botão direito do mouse em seu projeto, Remove Mappingvocê será mostrado na Advancedseção
Uday

11

O erro é genuíno. Você pode ter criado um espaço de trabalho com o mesmo nome em uma máquina diferente. Agora você pode ter mudado de máquina com um nome de máquina diferente.

Então, aqui está uma solução alternativa que definitivamente funcionará.

  1. Vá para "Team-Explorer"
  2. Vá para "Source-Control"
  3. Vá para a área de trabalho suspensa
  4. Clique em "Áreas de trabalho ..."
  5. Uma janela pop-up aparecerá
  6. Clique em "Mostrar áreas de trabalho remotas"
  7. Agora exclua a área de trabalho que está em conflito e você poderá continuar seu trabalho.

Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada.
alextansc

o link agora estará funcionando bem. Obrigado alextansc
smthakur19

@ smthakur19 o que alex tentou dizer é: se um dia esse link não estiver mais disponível (site inativo, página excluída etc.), essa resposta será inútil. Portanto, seria bom incluir o texto e o código essenciais no link referenciado e incluí-lo na resposta a todos. Portanto, a fonte da resposta e a pergunta serão SO.
Beytan Kurt

explicação elaborada, porém eu não poderia adicionar imagens como a minha reputação está abaixo de 10.
smthakur19

1
link quebrado, o procedimento NÃO funciona. Espaço de trabalho permanece
Beau D'Amore

7

Por favor, siga os passos abaixo:

Ctrl + Run 

Copiar e colar

%LocalAppData%\Microsoft\Team Foundation

Você obterá uma versão diferente do TFS, por exemplo insira a descrição da imagem aqui

Clique em cada pasta e você receberá

insira a descrição da imagem aqui

Agora exclua todos os dados nessa pasta.

Reabra o Visual studio.

Obrigado.


4

Atualização 2019-01-23

Se você receber repetidamente o seguinte erro, The workspace wkspaceEg does not exist…mesmo depois de empregar o nome de usuário correto ( wkspcOwnerDomain\wkspcOwnerUsername) no tf workspacecomando, por exemplo,

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

então o tf workfoldcomando pode ajudar a corrigi-lo. Veja esta pergunta .

Se mesmo isso não funcionar e você não puder / não estiver disposto a usar o TFS Sidekicks , vá para a opção arriscada última opção abaixo.


Estou usando o TFS 2012. Tentei tudo o que foi sugerido online: pasta de cache excluída, usei o menu suspenso de espaços de trabalho, tf espaços de trabalho / remova: *, credenciais limpas do Painel de Controle, IE etc.

Nada funcionou, acredito que meu espaço de trabalho foi corrompido de alguma forma. Por fim, fui ao banco de dados TFS e executei as seguintes consultas. Isso funcionou! Obviamente, tenha muito cuidado ao mexer no banco de dados , faça backups, etc.

O banco de dados é chamado Tfs_<<your_TFS_collection_name>>. Ignore o Tfs_Configurationbanco de dados MSSQL. Não tenho certeza, mas se você não tiver um Tfs_<<your_TFS_collection_name>>banco de dados, as configurações podem estar no Tfs_DefaultCollectionbanco de dados. O mapeamento é armazenado em 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>>


2

Nenhuma das respostas aqui removeu meus espaços de trabalho. Mas aqui está uma solução que pode funcionar para você.

  1. Abra um prompt de comando do Visual Studio
  2. Feche o Visual Studio primeiro ou o comando delete pode não excluir a área de trabalho
  3. Listar os comandos da área de trabalho -> tf /? para encontrar os comandos disponíveis a partir da versão do TFS.
  4. Listar os espaços de trabalho -> tf espaços de trabalho
  5. Excluir a área de trabalho -> tf área de trabalho YourWorkspace / delete

Este é o caminho a percorrer se você tiver duas áreas de trabalho com o mesmo nome, mas para usuários diferentes (por exemplo, sua conta normal e uma conta de administrador). Esses dois espaços de trabalho não aparecerão como dois espaços se você abrir a visualização "Espaços de trabalho", conforme descrito nas outras respostas - somente o do usuário atual será listado. No meu caso, era o segundo espaço de trabalho (para a conta de administrador) que estava bloqueando as operações. Se você fizer como descrito nesta resposta, a etapa 5 permitirá excluir o segundo espaço de trabalho usando "tf espaço de trabalho Seu espaço de trabalho; Usuário oculto / exclusão".
H. Breitkreutz

2

Você não precisa excluir a pasta Cache inteira. você perde todas as configurações / preferências Os mapeamentos da área de trabalho são armazenados em um arquivo chamado:

VersionControl.config no diretório de configurações locais dos usuários / dados do aplicativo. localizado aqui no windows 7:

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

onde x = 3.0,4.0, 5.0,6.0 etc.

Dentro disso, você encontrará pastas com nome de guia, abra cada uma delas, editando manualmente o arquivo mencionado acima, para remover o mapeamento da área de trabalho (o caminho do diretório estará presente no atributo mappedpaths) dessa pasta local para o servidor TFS (que não está mais em uso )


1

Finalmente excluiu TODAS as áreas de trabalho e começou do zero. Fixo.


1

Fui solicitado a fazer login no servidor TFS via Visual Studio; portanto, usei minha conta SU, que normalmente é necessária para o acesso ao servidor. Isso levou a alguns problemas e acabei mapeando para uma pasta diferente, sem perceber que havia duplicado todas as minhas coisas. Em algum momento, o Visual Studio voltou ao usuário normal, "perdi" as alterações pendentes e notei que novas alterações pendentes foram feitas no meu mapeamento antigo.

Quando tentava remapear para o novo local (ao qual a conta da SU estava vinculada), na tentativa de recuperar minhas alterações pendentes, ele dizia que já estava mapeado para a SU e não podia fazer isso, mas tinha não há como remover o mapa! Mostrar áreas de trabalho remotas, removendo todas as áreas de trabalho via linha de comando, etc, não revelou nada. Então pensei "e se ele estiver realmente vinculado à conta de usuário da SU no meu computador , não ao domínio". Entrei como minha SU localmente e, com certeza, havia uma área de trabalho toda configurada para esse usuário. Eu removi o mapeamento e consegui voltar ao meu usuário comum e remapear sem problemas.

Moral da história, talvez outro usuário esteja conectado na mesma máquina, o que não é visível do usuário conectado no momento, portanto, você não pode remover ou mesmo ver os mapeamentos.


1

Se as dicas mencionadas não estiverem ajudando você, faça o download do Team Foundation Sidekick e, usando isso, você poderá excluir os espaços de trabalho.


1

Arquivo -> Controle de origem -> Avançado -> Áreas de trabalho -> Escolha a área de trabalho em Gerenciar áreas de trabalho e clique em "Editar". Em seguida, você pode alterar a pasta local.


1

Todas as respostas aqui parecem respostas parciais que não funcionam em todos os casos. Acho que essa resposta funcionará em todos os casos, supondo que você tenha permissões apropriadas.

  1. Abra o prompt de comando do desenvolvedor. No meu caso, testei isso com o prompt de comando do desenvolvedor para o VS 2019.
  2. Digite este comando: tf workspaces

Observe que os resultados podem listar algumas tabelas com estrutura idêntica. Se você vir apenas uma tabela, algumas das suposições das outras respostas poderão funcionar para você. No entanto, se você vir duas ou mais tabelas, essa sequência de coleções é importante! Para nossos exemplos, vamos supor que você tenha duas coleções (duas não são diferentes de quatro, mas uma é mais entediante do que a outra).

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

Com sorte, você saberá com qual desses dois deseja trabalhar. No entanto, se você precisar percorrer todos eles, precisará fazer uma coleção de cada vez. Cada "Coleção" aqui é igual a uma "Organização" no Azure DevOps (eu acho).

Se você não usar este detalhe da coleção, poderá receber uma mensagem de erro:

Não foi possível determinar o servidor de controle de origem.

  1. Em seguida, digite este comando para a coleção que você deseja usar:

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

Isso lhe dará uma imagem muito mais completa do que você está lidando. Isso fica especialmente desagradável se você tiver várias contas de MSAs e de organizações atingindo esse repositório no mesmo computador. De fato, você pode ter várias entradas aparentemente idênticas. Se você tentar excluí-los com base no que você sabe atualmente, pode não funcionar. Mas podemos obter mais informações.

  1. Em seguida, executaremos o mesmo comando, mas anexamos /format:xmlao final dele:

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

Isso agora fornece um monte de XML com algumas propriedades adicionais. Os que provavelmente mais nos interessam são os aliases do proprietário. Essas são as informações ausentes que você precisa passar agora e excluir esses espaços de trabalho. Sem essas informações adicionais, é fácil bater em uma parede e ficar preso a uma mensagem de erro:

Especifique um espaço de trabalho.

  1. Agora temos todas as informações que precisamos. Dadas as OwernAliasesentradas adicionais , selecione a entrada exclusiva (ou repita se houver mais de uma) que deseja excluir e use este comando a seguir (alguns exemplos estão listados):

    • tf workspace /delete /collection:https://dev.azure.com/foo "MyWorkspaceName;Windows Live ID\John.Doe@hotmail.com"
    • 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\John.Doe@Example.com"

O GUID identifica um diretório AAD e as aspas existem para manipular quaisquer espaços que possam estar em um alias. O "MyWorkspaceName" vem de suas consultas anteriores listando os espaços de trabalho.


Sem essa abordagem completa, é possível que todas as outras respostas nesta pergunta falhem para você. Embora alguns desses esforços limpem os espaços de trabalho locais, eles não limparão os espaços de trabalho do servidor, com os quais você ainda pode entrar em conflito. Além disso, se você já usou uma conta diferente, as coisas podem ficar complicadas, como se você alternasse de uma conta MSA para uma conta AAD. E as coisas ficam MUITO peludas se você tiver uma conta MSA evárias contas AAD, todas com o mesmo endereço de e-mail usado na mesma estação de trabalho. E então fica super maluco se vários deles usarem o nome padrão da área de trabalho: o nome do host do seu computador. No meu caso, eu tinha quatro áreas de trabalho, todas com o mesmo nome da área de trabalho, nome do proprietário e nome do computador (ou seja, a primeira consulta sem a formatação XML tinha 4 registros idênticos!).


Não sei se existe uma maneira mais gráfica de gerenciar isso do que isso. Eu olhei e ainda não encontrei uma maneira melhor do que isso.


0

Você também pode remover um mapeamento tfs simplesmente editando o arquivo .sln e removendo o elemento GlobalSection da ligação tfs.


0

Obrigado pela ajuda!

Localizar área de trabalho com problema SELECT * FROM tbl_Workspace WHERE WorkspaceName como '% xxxxx%'

Encontre a área de trabalho desejada SELECT * FROM tbl_Workspace WHERE Nome da área de trabalho como '% zzzzz%'

Selecione Editar Top 200 tbl_WorkingFolder e, em seguida, Encontre o mapeamento de problemas SELECT * FROM tbl_WorkingFolder WHERE WorkspaceId = Problema WorkspaceId acima

Altere o WorkspaceId para o WorkspaceId desejado

Por fim, vá ao Project Explorer e selecione Remove Mapping no projeto

Modifique o VB6 MSSCCPRJ.SCC para corresponder ao espaço de trabalho desejado


0

Primeiro faça o download e instale o plug-in do Team Explorer no seu sistema e depois vá para o Source Control Explorer. No painel de navegação, localize o campo Área de Trabalho e clique na opção Áreas de Trabalho. Depois de clicar na opção Áreas de trabalho, você verá todas as áreas de trabalho mapeadas. Clique no botão remover e remova o mapeamento dos espaços de trabalho necessários.


0

Execute tf workspacespara visualizar os mapeamentos atuais da área de trabalho. A saída se parece com:

insira a descrição da imagem aqui

Então corra tf workspace /delete "{workspace};{user}

Usando a saída acima, para excluir a área de trabalho bi:

tf workspace /delete bi;James Wierzba


Isso não está funcionando para mim. Estou recebendo o seguinte erro: Ocorreu um erro de argumento: É necessário um nome de espaço de trabalho para excluir um espaço de trabalho.
Red M

0

A seguir estão as etapas para remover o mapeamento de um projeto do TFS:

(1) Clique no botão Exibir.

(2) Abra o Team Explorer

(3) Clique no controle de origem

(4) Clique com o botão direito do mouse no seu projeto / diretório

(5) Clique em Remover mapeamento

(6) Finalmente, exclua o diretório local do formulário Projeto.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.