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

Uma proposta de Clean Architecure com Modelo de Atores

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