O que é Controle de Versão do Team Foundation?

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Se o projeto de software for grande ou pequeno, o uso do controle de versão assim que possível será uma boa ideia. Os sistemas de controle de versão são programas de software que ajudam a acompanhar as alterações feitas no código ao longo do tempo. Ao editar seu código, você faz com que o sistema de controle de versão crie um instantâneo de seus arquivos. O sistema de controle de versão guarda o instantâneo permanentemente, para que você possa revisá-lo, se precisar.

O Azure DevOps Services e o TFS contam com dois modelos de controle de versão: o Git, que é o controle de versão distribuído, e o TFVC (Controle de Versão do Team Foundation), que é o controle de versão centralizado. Este artigo é uma visão geral e um ponto de partida para começar a usar o TFVC. Se você estiver decidindo qual tipo de controle de versão do Azure DevOps Services/TFS usar, confira Escolher o controle de versão certo para seu projeto.

Por que usar o controle de versão?

Sem o controle de versão, você fica tentado a manter várias cópias de código em seu computador. Isso é perigoso, pois é fácil alterar ou excluir um arquivo na cópia errada do código, e possivelmente perder o trabalho. Os sistemas de controle de versão resolvem esse problema gerenciando todas as versões do seu código, mas apresentando uma única versão por vez.

Os sistemas de controle de versão oferecem os seguintes benefícios:

  • Criar fluxos de trabalho: fluxos de trabalho de controle de versão impedem o caos de todos usando seu processo de desenvolvimento com ferramentas diferentes e incompatíveis. Os sistemas de controle de versão fornecem imposição e permissões de processo, de modo que todos permaneçam em sintonia.
  • Trabalhar com versões: cada versão tem uma descrição do que as alterações na versão fazem, como corrigir um bug ou adicionar um recurso. Essas descrições ajudam você a seguir as alterações em seu código por versão, em vez de por alterações de arquivo individuais. O código armazenado em versões pode ser exibido e restaurado a partir do controle de versão a qualquer momento, conforme necessário. Isso facilita basear novos trabalhos em qualquer versão do código.
  • Programar em equipe: o controle de versão sincroniza as versões e garante que suas alterações não estejam em conflito com outras alterações da sua equipe. Sua equipe conta com o controle de versão para ajudar a resolver e evitar conflitos, mesmo quando as pessoas fazem alterações ao mesmo tempo.
  • Manter um histórico: o controle de versão mantém um registro das alterações à medida que sua equipe salva novas versões do código. Esse histórico pode ser revisado para descobrir quem, por que e quando as alterações foram feitas. O histórico lhe dá a confiança de experimentar, uma vez que você pode reverter para uma versão boa anterior a qualquer momento. O histórico permite que você baseie o trabalho em qualquer versão do código, como para corrigir um bug em uma versão anterior.
  • Automatizar tarefas: os recursos de automação de controle de versão economizam tempo da equipe e geram resultados consistentes. Automatize o teste, a análise de código e a implantação quando novas versões são salvas no controle de versão.

Há muitas coisas que podem ocupar seu tempo como desenvolvedor: reproduzir bugs, aprender novas ferramentas e adicionar novos recursos ou conteúdo. À medida que as demandas de seus usuários aumentam, o controle de versão ajuda sua equipe a trabalhar em conjunto e cumprir prazos.

Controle de Versão do Team Foundation

O TFVC é um sistema de controle de versão centralizado. Normalmente, os membros da equipe têm somente uma versão de cada arquivo nos computadores de desenvolvimento. Os dados históricos são mantidos somente no servidor. As ramificações são baseadas em caminho e criadas no servidor.

O TFVC permite aplicar permissões granulares e restringir o acesso a um nível de arquivo. Como sua equipe faz check-in de todo o trabalho no Azure DevOps Server, você pode facilmente fazer auditoria das alterações e identificar qual usuário fez check-in em um conjunto de alterações. Usando as ferramentas de comparação e anotação, você pode identificar as alterações exatas que eles fizeram.

Inícios rápidos

Comece criando um projeto, configurando seu workspace e revisando e compartilhando seu código. Você pode usar qualquer um desses clientes ou IDEs:

Tutoriais passo a passo

Conheça as noções básicas de como trabalhar no TFVC com o tutorial a seguir, que mostra um dia na vida de um desenvolvedor de DevOps usando o Visual Studio e o TFVC.

O que você deseja fazer?

  • Configurar seu computador de desenvolvimento e começar

    Dedique alguns minutos para configurar seu computador de desenvolvimento e tirar proveito de todos os benefícios de uma base de código controlada por versão.

  • Escolher seu modelo de fluxo de trabalho – servidor ou workspaces locais

    • Workspaces do servidor – Antes de fazer alterações, os membros da equipe fazem check-out publicamente dos arquivos. A maioria das operações exige que os desenvolvedores estejam conectados ao servidor. Esse sistema facilita o bloqueio de fluxos de trabalho. Outros sistemas que funcionam dessa forma incluem o Visual Source Safe, o Perforce e o CVS. Com workspaces de servidor, é possível escalar verticalmente até bases de código enormes com milhões de arquivos por ramificação e arquivos binários grandes.

    • Workspaces locais - cada membro da equipe usa uma cópia da versão mais recente da base de código e trabalha off-line conforme necessário. Os desenvolvedores fazem o check-in de suas alterações e resolvem os conflitos conforme necessário. Outro sistema que funciona dessa maneira é o Subversion.

  • Desenvolver o aplicativo em uma base de código controlada por versão

    Você não precisará pensar sobre o controle de versão na maioria das situações. O sistema oferece suporte a você quando é preciso gerenciar e entender as alterações.

  • Suspender seu trabalho

    Às vezes, você precisa separar parte ou todo o trabalho que você está fazendo. O sistema de controle de versão pode tornar o trabalho mais fácil e reduzir o tempo desperdiçado por interrupções.

  • Contribua com seu trabalho para a equipe

    Faça check-in de suas alterações para que sua equipe possa compilar, testar e lançar o valor que você criou.

  • Isolar riscos

    Use ramificações e bloqueios para isolar o risco introduzido pelo trabalho feito por equipes diferentes.

  • Exibir e gerenciar versões de pastas

    Uma vantagem do sistema de controle de versão é que você pode verificar dados de um momento anterior para obter informações detalhadas sobre quais alterações foram feitas em seus arquivos.

  • Comparar pastas e arquivos

    Você pode comparar pastas do servidor e pastas locais entre si e ver as diferenças entre o conteúdo de cada pasta.

  • Resolver conflitos de controle de versão do Team Foundation

    Uma grande vantagem de usar o controle de versão é que várias pessoas podem trabalhar simultaneamente em um arquivo. Um desvantagem é que às vezes você deve resolver conflitos. Embora possa ser frustrante encontrar conflitos, o sistema fornece informações e ferramentas para ajudá-lo compreender e resolver os conflitos.

  • Trabalhar com bloqueios de controle de versão

    Quando você precisa impedir que um arquivo ou pasta passem por check-out e sejam alterados, é possível bloqueá-los.

Operações disponíveis apenas na linha de comando tf

A tabela a seguir lista as tarefas do TFVC que você só pode executar em um prompt de comando usando a ferramenta de linha de comando tf.

Tarefa Comando
Excluir o workspace de outro usuário. workspace com a opção /delete
Desfazer o check-out de outro usuário. undo
Remover o bloqueio de outro usuário. lock
Definir escopo do rótulo. label
Executar uma mesclagem sem base. merge
Destruir permanentemente um conteúdo. destroy
Reverter os efeitos de um ou mais conjuntos de alterações. rollback