Em posts anteriores, reforço que um administrador de um servidor, de rede, e também do TFS / VSTS, deve saber usar o console, deve saber usar Powershell, na stack Microsoft, e futuramento no Linux, mas neste último existe a opção do bash também.
Porém isso é uma prática rara para quem trabalha com a plataforma Microsoft. Vamos começar a mudar esse paradigma, para isso vamos ver como podemos começar fazer uso do console e Powershell.
Microsoft Visual Studio Team Foundation Server 2015 Power Tools
Já escrevi sobre o TFPT aqui e mais recentemente aqui. Se você leu os posts já deve ter ele instalado, senão tem instale, sem ele não teremos os Cmdlets, ou command-lets, para o TFS / VSTS.
Na instalação escolha a opção customizada, e selecione Powershell CmdLets e escolha This feature will be installed on local hard drive.
Baixando apenas arquivos modificados em um único Changeset
O primeiro exemplo que vou mostrar aqui é bem básico, e vou utilizar o post do Viníciu Moura, Source Control: Baixando apenas arquivos modificados em um único Changeset. Neste post, ele demonstra como baixar um changeset específico se você estiver utilizado o TFVC, usando na VM do Brian:
Get-TfsChangeset -ChangesetNumber 74
Lista dos arquivos alterados entre um changeset e outro
Get-TfsItemHistory $/fabrikamfiber -r -includeitems -version 74~73 | select-tfsitem | %{$_.path}
Aí está uma beleza do Powershell, essa única linha contém três comandos:
- O cmdlet Get-TfsItemHistory, que irá trazer os changesets, com seus items
- Select-TfsItem, que irá capturar os itens
- e por último o % irá fazer um filtro e dar a saída somente do path, ignorando outras informações do comando anterior
Vai ficar ainda melhor!
Reports like a boss
Digamos que o seu processo de gestão de mudança inclua enviar uma relação de todos os arquivos alterados entre os changesets enviados pelos desenvolvedores nesta sprint… Como administrador do TFS / VSTS, você irá pedir para eles preencherem uma planilha?? PREENCHER uma planilha? Não!
Primeiro vamos colocar algumas características que queremos no relatório em uma variável $p, como abaixo:
$p=@{ Title = "Relatório de arquivos alterados, tirado em $(Get-Date)" TitleFillPattern = "LightTrellis" TitleSize = 18 TitleBold = $true Path = "c:YTempReport.xlsx" Show = $true AutoSize = $true }
Nos formatamos o nome do relatório em Title, tamanho da fonte em TitleSize, colocamos em negrito em TitleBold, … Por fim, demos um nome e o path que o arquivo Excel deve ser criado, e que deve abrir a planilha em seguida ao executar, parâmetro Show. Se copiar e colar no console essas linhas, funciona, mesmo quebrando em várias.
Depois vamos executar o comando de exportação, passando essa variável:
Get-TfsItemHistory $/fabrikamfiber -r -includeitems -version 74~73 | select-tfsitem | % {$_.path} | Export-Excel @p
Lá no fim vai o Export-Excel, que é um módulo que instalei.
E vóila:
Dicas:
- Tirando o parâmetro Show é possível executar esse script no build! Lembre-se agora ele é “scriptado”! E em Powershell! Não sabia? Leia
- Você só precisa instalar o módulo Powershell! Não precisa de Excel!! 😉
Para instalar o módulo, se você estiver rodando o Powershell V5 é só digitar:
Install-Module -Name ImportExcel
O módulo Excel parece simples, mas ele pode fazer a exportação criando gráficos, pivot tables, …
Tem alguma ideia de extração de relatório? Coloque nos comentários… pode virar o assunto de um futuro post.
Referências
Quer aprender mais sobre Powershell? Cmdlets? Baixe o PDF gratuito da série Succinctly aqui.
Emmanuel Brandão