Escolher o controlo de versão certo para o seu projeto

Azure DevOps Services | Azure DevOps Server | 2020 Azure DevOps Server | 2019 TFS 2018 - TFS 2013

Se o seu projeto de software é grande ou pequeno, usar o controlo de versão o mais rápido possível é uma boa ideia. O Azure Repos suporta dois tipos de controlo de versão: Git e Team Foundation Version Control (TFVC).

Que sistema de controlo de versão devo utilizar?

Git é o fornecedor de controlo de versão padrão para novos projetos. Você deve usar Git para controlo de versão em seus projetos e começar a mover os seus projetos TFVC existentes para Git. TFVC é considerado recurso completo. A Azure DevOps manterá a compatibilidade com a TFVC, mas a Git receberá todo o investimento futuro.

Você pode usar repos TFVC com Git no mesmo projeto, por isso é fácil adicionar TFVC mais tarde se você precisar de controlo de versão centralizado. Para configurar um novo tipo de repo para um projeto existente , utilize estas instruções.

Git (distribuído)

Git é um sistema de controlo de versão distribuído. Cada desenvolvedor tem uma cópia do repositório de origem na sua máquina de dev. Os desenvolvedores podem comprometer cada conjunto de alterações na sua máquina dev e executar operações de controlo de versão como o histórico e comparar sem uma ligação de rede. Os ramos são leves. Quando precisa de mudar de contexto, pode criar uma filial local privada. Pode mudar rapidamente de um ramo para outro para pivô entre diferentes variações da sua base de código. Mais tarde, pode fundir,publicar ou desfazer-se do ramo.

Nota

Git in Visual Studio, Azure DevOps Services, e TFS é git padrão. Você pode usar Visual Studio com serviços git de terceiros, e você também pode usar clientes Git de terceiros com TFS.

Para saber mais, consulte Git e Azure Repos.

TFVC (centralizado)

Team Foundation Version Control (TFVC) é um sistema de controlo de versão centralizado. Normalmente, os membros da equipa têm apenas uma versão de cada ficheiro nas suas máquinas de dev. Os dados históricos são mantidos apenas no servidor. Os ramos são baseados em caminhos e criados no servidor.

A TFVC tem dois modelos de fluxo de trabalho:

  • Espaços de trabalho do servidor - Antes de escoar as alterações, os membros da equipa verificam publicamente os ficheiros. A maioria das operações requer que os desenvolvedores estejam ligados ao servidor. Este sistema facilita o bloqueio dos fluxos de trabalho. Outros sistemas que funcionam desta forma incluem Cofre de Origem Visual, Perforce e CVS. Com espaços de trabalho do servidor, pode escalar até bases de código muito grandes com milhões de ficheiros por ramo e grandes ficheiros binários.

  • Espaços de trabalho locais - Cada membro da equipa leva consigo uma cópia da versão mais recente da base de código e funciona offline conforme necessário. Os desenvolvedores verificam as suas alterações e resolvem os conflitos conforme necessário. Outro sistema que funciona assim é a subversão.

Para saber mais, consulte a visão geral da TFVC

Mudar-se de TFVC para Git

Se tiver repos TFVC existentes, pode emigrá-los para git repos usando a ferramenta git-tfs. A ferramenta permite-lhe migrar um repo TFVC para um repo Git em apenas alguns comandos.

Capacidades Git e TFVC

Precisa de mais ajuda para fazer uma escolha? Estes gráficos podem ajudar.

Capacidade

TFVC

Git


Alterações

Os membros da equipa podem alterar simultaneamente ficheiros nas suas máquinas de dev. Faz o upload de alterações (check-in) no servidor quando as cria. Pode fazer o upload das suas alterações a qualquer momento. No entanto, pode ser interrompido por conflitos.

Pode alterar o comentário de uma alteração depois de o fazer o check-in. Pode ligar alterações a itens de trabalho e associá-los a construções concluídas.

Os membros da equipa podem alterar simultaneamente ficheiros nas suas máquinas de dev. Cria compromissos na sua máquina dev independentemente de os contribuir para a equipa. Quando estiver pronto, deve puxar os compromissos mais recentes antes de carregar (empurrar) o seu para o servidor. Quando puxar, pode ser interrompido por conflitos.

Pode alterar o último compromisso local. Não podes mudar os compromissos mais velhos. Pode ligar compromissos de trabalho e associá-los a construções concluídas.

Pode modificar e combinar compromissos locais a partir da solicitação de comando.

Ramificação

Os ramos baseados em caminhos são usados principalmente como construções de longa data para isolar o risco de mudança entre as equipas de recurso e lançamentos. Os membros da equipa normalmente configuram um espaço de trabalho adicional para cada ramo em que trabalham.

As mudanças em cada ramo são independentes umas das outras, por isso não tens de as verificar antes de mudar de um ramo para outro. A fusão entre ramos irmãos requer uma fusão sem fundamento.

Pode obter visualizações das suas estruturas de filiais e onde as suas alterações foram fundidas.

Consulte os balcões de utilização para isolar o risco no Controlo de Versão da Fundação da Equipa.

A ramificação é leve e independente do caminho. Muitos desenvolvedores criam um ramo para cada nova funcionalidade que estão codificando, por vezes diariamente. Pode mudar rapidamente de um ramo para outro para pivô entre diferentes variações da sua base de código. Pode criar ramos que só existem na sua máquina dev e partilhá-los se e quando estiver pronto.
Tem de se comprometer, ramificar, esconder ou desfazer alterações antes de trocar de ramo. A fusão é simples e independente do compromisso em que o ramo se baseia. Pode comparar ramos para ver quais os compromissos que existem em que ramos.

Consulte os ramos Do Git para mudar de contexto, suspender o trabalho e isolar o risco.

Resolução de conflitos

Talvez tenhas de resolver conflitos quando chegares, fazer o check-in, fundir-te ou desaparar-te. Pode resolver todos os tipos de conflitos em Visual Studio.

Talvez tenhas de resolver conflitos quando puxares ou fundires. Pode resolver conflitos de conteúdo em Visual Studio ou a partir da pronta de comando.

Armazenamento de ficheiros

Pode verificar ficheiros binários grandes. Também pode querer utilizar o NuGet em combinação ou como alternativa.

Pode verificar pequenos ficheiros binários como se fosse um ficheiro regular. Ao trabalhar com ficheiros binários grandes, utilize o Git-LFS para armazenar os seus grandes ficheiros binários em Azure Repos.

Histórico

O histórico de ficheiros não é replicado na máquina dev do cliente, pelo que só pode ser visualizado quando estiver ligado ao servidor. Pode ver a história em Visual Studio e no portal web. Pode anotar ficheiros para ver quem mudou uma linha, e quando a mudaram.

O histórico de ficheiros é replicado na máquina dev do cliente e pode ser visualizado mesmo quando não está ligado ao servidor. Pode ver a história em Visual Studio e no portal web. Pode anotar ficheiros para ver quem mudou uma linha, e quando a mudaram.

Marque os seus ficheiros

Pode aplicar etiquetas a uma versão de um ou mais ficheiros a partir de Visual Studio ou da solicitação de comando. Cada ficheiro pode ter a etiqueta aplicada a uma versão diferente.

Pode aplicar etiquetas a partir do pedido de comando para compromissos individuais. Veja as etiquetas na janela de história Visual Studio.

Reverter as alterações

Pode reverter um compromisso.

Escala

Você pode trabalhar em projetos de pequena ou muito grande escala usando espaços de trabalho locais. Suporta projetos de escala massiva (milhões de ficheiros por ramo e grandes ficheiros binários) utilizando espaços de trabalho do servidor.

Pode começar rapidamente pequenos projetos. Você pode escalar até projetos muito grandes, mas você tem que planejar com antecedência para modular a sua base de código. Você pode criar vários repositórios em um projeto.

Servidor

Capacidade

TFVC

Git


Servidor

Serviços Azure DevOps, TFS

Serviços Azure DevOps, TFS e Git serviços de terceiros

Alertas

Os membros da equipa podem receber alertas de e-mail quando os compromissos são empurrados para o servidor.

Auditabilidade

Como a sua equipa verifica todo o seu trabalho num sistema centralizado, pode identificar qual o utilizador que fez o check-in numa alteração e usar a comparação para ver o que mudou. Olhando para um ficheiro, pode anotar para identificar quem mudou um bloco de código, e quando o fizeram.

Pode identificar qual utilizador empurrou um compromisso. (Qualquer pessoa pode reclamar qualquer identidade como autor ou pessoa que cometeu o compromisso.) Pode identificar quando as alterações foram feitas e o que foi alterado usando a história, comparar e anotar.

Construções (automatizada por TFBuild)

Você pode usar todas as capacidades da TFBuild para construir qualquer combinação de conteúdo que você deseja dentro da coleção do projeto.

Você pode usar a maioria das capacidades da TFBuild para construir um projeto de cada vez, e um ou mais repositórios de cada vez.

Revisões de código

Sim, o que é isto? ver Day in the life of a devops Developer: Suspender o trabalho, corrigir um bug e realizar uma revisão de código. Para discussões mais leves, também pode comentar e enviar e-mail sobre uma alteração do portal web.

Sim, o que é isto? ver Conduta um pedido de puxar. Para discussões mais leves, também pode comentar e enviar e-mail sobre um compromisso a partir do portal web.

Ficheiros

Cada projeto contém todos os ficheiros sob um único caminho de raiz (por exemplo: $/FabrikamTFVC). Pode aplicar permissões ao nível do ficheiro. Pode bloquear ficheiros.

Pode navegar nos seus ficheiros no portal web e utilizar o Source Control Explorer em Visual Studio.

O seu projeto existe num único servidor.

Cada projeto pode conter um ou mais repositórios de Git e cada repositório de Git pode conter um ou mais ramos. As permissões mais granulares que pode aplicar são a um repositório ou a um ramo. Os ficheiros não podem ser bloqueados.

Pode navegar nos seus ficheiros no portal da web.

Pode pressionar compromissos com vários repositórios remotos (por exemplo, tanto para o repositório do seu projeto como para o seu site hospedado no Windows Azure.

Portões de qualidade

Você pode usar construções de CI, builds gate-in e políticas de check-in.

Você pode usar construções de CI e builds gate-in através de políticas de filial.

Cliente

Capacidade

TFVC

Git


Software de cliente

Visual Studio, Eclipse (com Team Explorer Everywhere

Visual Studio, Visual Studio Código, Eclipse e outras ferramentas de terceiros

Ficheiros

Pode navegar nos seus ficheiros utilizando o Source Control Explorer em Visual Studio ou utilizando Windows File Explorer ou a solicitação de comando.

Pode navegar nos seus ficheiros utilizando Windows File Explorer ou o pedido de comando.

Gerir o trabalho na sua máquina de dev

Alterações, compromissos e páginas de ramos.

Suspenda o seu trabalho

Pode criar um ramo a partir de Visual Studio ou do pedido de comando) ou esconder (a partir da solicitação de comando)

Compatibilidade Visual Studio

Visual Studio 2013+

Também pode utilizar Visual Studio 2012 Update 4 (também tem de instalar Visual Studio Ferramentas para Git).

Portal Web

Pode navegar na sua base de códigos (incluindo ramos), ver histórico, anotar e comentar alterações e prateleiras e executar outras tarefas, como o descarregamento ad hoc de partes selecionadas da sua base de código como ficheiro .zip.

Pode navegar na sua base de código, ver histórico, comparar ramos, anotar e comentar compromissos e executar outras tarefas, como o descarregamento ad hoc de partes selecionadas da sua base de código como um ficheiro .zip.

Integração e migração

Capacidade

TFVC

Git


Caminho de migração