Como fazer undo-checkout em arquivos de um outro usuário

Hoje tivemos que remover os arquivos que estavam em checkout para uma das pessoas que trabalham com a gente. Só que o detalhe é que a máquina que essa pessoa usou para fazer o checkout, e consequentemente as informações que ficam no workspace, não estavam mais disponíveis (a máquina foi trocada, e a antiga sabe-se lá onde está).
Então, como desfazer os checkouts existentes?
A maneira que encontramos foi, utilizando um usuário administrador dentro do team project, fazer a remoção do checkout através de linha de comando (tf.exe).
Primeiramente, buscamos o nome do workspace que estava associado ao usuario, através do comando abaixo. Retornaram duas ocorrências, que são a máquina antiga e a máquina nova. Essa informação será importante depois.

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf workspaces /owner:acroberto
Collection: tfs.intra.cliente.com.br\TPC
Workspace     Owner     Computer      Comment
------------- --------- ------------- -----------------------------------------
ESTACAO18     acroberto ESTACAO18
ESTACAO19     acroberto ESTACAO19


Em seguida, fizemos uma listagem dos arquivos que estavam em checkout no team project (chamamos de SISTEMA). Veja que jogamos o resultado da consulta em um arquivo texto dentro do c:\.

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf status $/SISTEMA /recursive /user:* /server:tfs.intra.cliente.com.br\TPC >> c:\tf.log 

Ignoring the /server option.


Agora vem o comando importante. Usando o nome do workspace + login do usuário + diretório base a partir de onde os arquivos com checkin se encontravam, executamos o comando tf undo. Note o uso do parâmetro /recursive, que faz com que seja feita a busca em todas as subpastas do diretório inicial.

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf undo /workspace:ESTACAO18;acroberto $/SISTEMA/CLIENTE-SISTEMA-interno /recursive

Pronto, os arquivos foram liberados, efetuando o undo-checkout. Para conferir, rodei novamente o comando tf status, para pegar todos os arquivos em checkout. Só sobrou um que eu mesmo estava trabalhando.


C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf status $/SISTEMA /recursive /user:* /server:tfs.intra.cliente.com.br\TPC 
Ignoring the /server option. 
File name         Change User    Local path
----------------- ------ ------- ----------------------------------------------
$/SISTEMA/CLIENTE-SISTEMA-interno/CLIENTE.SISTEMA.Batch
AtualizarDados.cs ! edit falgouw C:\Documents and Settings\FALGOUW\My Documents\Projetos\SISTEMA\CLIENTE-SISTEMA-interno\CLIENTE.SISTEMA.Batch\AtualizarDados.cs
1 change(s)

[]’s

Comentários

Postagens mais visitadas deste blog

Trocando configurações padrão do Live TIM

Testes automatizados em sistemas autenticados com certificados digitais, usando Selenium e PhantomJS

Uma proposta de Clean Architecure com Modelo de Atores