Como desfazer o check-out de outro usuário no TFS?

95

Como administrador residente do TFS, ocasionalmente sou solicitado a desfazer uma verificação (geralmente um bloqueio) que um usuário fez em um determinado arquivo verificado no controle de origem.

Como você desfaz o check-out de outro usuário?

brett rogers
fonte

Respostas:

144

Existem pelo menos 2 maneiras diferentes de fazer isso:

Linha de comando

Há um utilitário de linha de comando chamado Tf.exe que vem com o Team Explorer. Encontre a documentação aqui . Ele pode ser acessado iniciando uma janela de Prompt de Comando do Visual Studio. A sintaxe do comando é:

tf undo [/workspace:workspacename[;workspaceowner]] 
[/server:servername] [/recursive] itemspec [/noprompt]

Para um arquivo

tf undo /workspace:workspacename;workspaceowner $/projectname/filename.cs

GUI

O segundo é por meio da GUI, mas não é padrão - você deve instalar as ferramentas elétricas do TFS . Veja aqui os detalhes sobre como usar este método.

Lembre-se de que, com qualquer um dos métodos, você precisará dos direitos apropriados. As permissões são chamadas de "Desfazer alterações de outros usuários" e "Desbloquear alterações de outros usuários". Essas permissões podem ser visualizadas por:

  1. Clicar com o botão direito no projeto, pasta ou arquivo desejado no Source Control Explorer
  2. Selecione Propriedades
  3. Selecione a guia Segurança
  4. Selecione o usuário ou grupo apropriado na seção Usuários e Grupos no topo
  5. Visualize a seção "Permissões para [usuário / grupo]:" na parte inferior

Excluindo o espaço de trabalho

tf workspace /delete WorkspaceName;User
             /server:http://server:8080/tfs/MyTeamCollection 
brett rogers
fonte
Para mim, o comando tf undo / workspace: mydesk * .sdf relata "Sem alterações pendentes", mas não desfaz o check-out (bloqueio)
dumbledad
Esqueci o caminho do servidor TFS antes do meu * .sdf itemspec, presumi que ele funcionaria no diretório atual. A linha de comando fornecida funciona para mim agora.
dumbledad
1
Certifique-se de usar aspas em torno dos caminhos com espaços, caso contrário, você poderá receber uma mensagem como: "Nenhuma alteração pendente foi encontrada para $ / xxx"
PeterX
Como encontro o nome do espaço de trabalho? Vejo que consigo executar: tf workspaces / owner: [outro usuário] / server: [servidor], recebo uma lista de quatro áreas de trabalho que o usuário possui, mas como saberia qual é a área de trabalho do arquivo?
PeterX
1
PeterX, você pode ver o espaço de trabalho navegando até o arquivo no Solution Explorer do Visual Studio, clique com o botão direito do mouse no arquivo bloqueado e selecione Propriedades e, na guia Status, você tem informações sobre o espaço de trabalho e o usuário que bloqueou o arquivo
Dante
36

A maneira mais fácil que encontrei é usar o aplicativo TFS Sidekick gratuito . Ele tem uma opção para visualizar e desfazer o check-out de outro usuário.

Marek Karbarz
fonte
5
Ele está abaixo de "Status Sidekick". Pesquise, selecione arquivos e desfaça.
Wolf5
Se o usuário saiu da empresa, você deve saber o nome de usuário do Active Directory (que nem sempre é igual ao nome e / ou sobrenome do usuário). Minha empresa atribui nomes de usuário numerados, então eu tive que procurar o usuário aposentado antes de poder pesquisá-lo no VS ou no Status TFS Sidekick.
Zephan Schroeder
Isso funcionou incrivelmente. muito mais fácil do que tentar descobrir nomes de espaço de trabalho e tal usando a ferramenta de linha de comando.
Bo Flexson
28

Eu mesmo tive esse problema e encontrei uma maneira mais fácil de limpar áreas de trabalho antigas.

  1. No Visual Studio, abra o Source Control Explorer .

  2. Do 'Workspace' drop-down selecione ' Workspaces ... '

  3. Uma caixa de diálogo aparecerá mostrando os espaços de trabalho em seu PC atual. Selecione ' Mostrar espaços de trabalho remotos '

  4. Agora você também verá áreas de trabalho do PC anterior (contanto que sejam da mesma conta de usuário). Selecione o (s) espaço (s) de trabalho antigo (s) e clique em ' Remover '. Isso deve excluir o espaço de trabalho antigo do TFS, juntamente com quaisquer checkouts persistentes.

Tenho certeza de que Arne encontrou uma solução, mas espero que isso ajude outras pessoas que pesquisam o problema no Google.

Saeid Mohammad Hashem
fonte
7
Isso funciona bem se você for o proprietário do espaço de trabalho, especialmente para limpar sua lista atual de espaços de trabalho. Não é tão bom para excluir espaços de trabalho de outros usuários ou bloqueios de checkout :-).
Zephan Schroeder
Acordado. Isso funciona bem para excluir seus próprios bloqueios de checkout de outro PC.
Chris,
1
Certo, mas a questão é específica para desbloquear arquivos que foram retirados para um usuário DIFERENTE.
BrainSlugs83
9

Selecione seu arquivo no TFS sidekick e, acima da lista, você terá um "desfazer alteração pendente". Clique nele e a alteração será desfeita :) O ícone é semelhante ao ícone "Desfazer" no MS Word Obtenha os ajudantes do TFS em http://www.attrice.info/cm/tfs/index.htm

Maryam
fonte
Ferramenta mais simples de usar. Realmente me ajudou a desfazer uma mudança no nível da solução que um ex-trabalhador verificou
Vishnoo Rath