Posts filed under ‘Team Foundation Server’

Desenvolvendo com VSTS: Changesets

No Team Foundation Source Control,  um Changeset é utilizado para armazenar informações de um check-in, contendo as ações realizadas (add, rename, delete, etc), work items relacionados, data, owner e comentários.

Para acessar as informações de um changeset, através de C#, basta criar a conexão ao server, obter um objeto VersionControlServer e obter o changeset de acordo com seu número de identificação.

O único problema nesta história é que é possível obter apenas o número do último changeset criado. Para navegar através dos outros existentes, utilize o loop como no exemplo abaixo, já que os changeset são criados sequencialmente:

NetworkCredential myCredential = CredentialCache.DefaultNetworkCredentials;
TeamFoundationServer tfServer = new TeamFoundationServer(“myTeamFoundationServer”, myCredential); 
VersionControlServer vcServer = tfServer.GetService(typeof(VersionControlServer)) as VersionControlServer;           

int
lastChangesetId = vcServer.GetLatestChangesetId(); 
string totalChangesets = Console.ReadLine(); 

while (–lastChangesetId > 0)
{     

Changeset ch = vcServer.GetChangeset(lastChangesetId, true, true);     

if (String.IsNullOrEmpty(ch.Comment))    
       
Console.WriteLine(“{0} – {1}”, ch.Owner, ch.ChangesetId); 

} 

Console.ReadLine(); 

Abraços!

Anúncios

Novembro 13, 2007 at 6:22 pm Deixe um comentário

Desenvolvendo com VSTS: Undo Pending Changes

Uma rápida e simples ferramenta para executar o comando Undo em todos os arquivos em check-out. 

Que o Visual Studio Team System é uma ferramenta fora do normal ninguém duvida. Mas trabalhando com esta ferramenta no dia-a-dia já é possível perceber a necessidade de criar outras ferramentas, baseadas nas funcionalidades deste sistema, para facilitar nossa vida. Pretendo escrever uma série de dicas, ferramentas que eu acho interessante, que pode ser interessante para você também J 

Este primeiro projeto surgiu da necessidade de executar undo em todos os arquivos com uma determinada extensão. Imaginei então a possibilidade de me conectar ao TFS, obter todos os meus pending changes, selecionar alguns e dar Undo.  

Para executar todas estas funcionalidades, por incrível que pareça, poucas linhas de código são necessárias.
Para começar, é fundamental estabelecer uma conexão ao TFS: 

NetworkCredential myCredential = CredentialCache.DefaultNetworkCredentials;
TeamFoundationServer tfServer = new TeamFoundationServer(“TeamFoundationServer”, myCredential); 

Através das credenciais a partir do contexto do usuário corrente, uma instância de TeamFoundationServer é criada, apontando para o servidor “TeamFoundationServer”. Próximo passo é criar um objeto VersionControlServer, que representa o banco de dados do TFS: 

VersionControlServer vcServer = tfServer.GetService(typeof(VersionControlServer)) as VersionControlServer; 

A partir deste objeto, é possível obter as informações de um determinado workspace de um determinado usuário, o objeto que realmente representa o workspace e as alterações pendentes: 

WorkspaceInfo wsInfo = Workstation.Current.GetLocalWorkspaceInfo(vcServer, “myWorkspace”, “myUserName”);
Workspace workspace = wsInfo.GetWorkspace(tfServer);
PendingChange[] pendingChanges = workspace.GetPendingChanges(); 

Pronto! Com apenas estas linhas de código já temos todas as alterações pendentes em mãos, agora é só executar a ação desejada.
Neste exemplo, para executar o Undo em todos os arquivos, basta executar o bloco de código abaixo: 

int undoExecution = workspace.Undo(pendingChanges); 

O retorno informa o número de arquivos processados. 

Para filtrar por extensão os pending changes que executarão Undo, basta fazer como abaixo: 

foreach (PendingChange change in pendingChanges)
{
         if (System.IO.Path.GetExtension(change.FileName).Equals(“.cs”))     
        
{
           
                
undoExecution = this.workspace.Undo(new PendingChange[] { pendingChange });
     
        
}
} 

Abraços!

Novembro 7, 2007 at 11:22 am 2 comentários


Calendário

Outubro 2017
S T Q Q S S D
« Ago    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Posts by Month

Posts by Category