O que são sistemas de controle de versão?

Os sistemas de controle de versão (VCS) são essenciais para rastrear e gerenciar alterações no código-fonte. Aprenda os conceitos básicos dos sistemas de controle de versão distribuídos, centralizados e locais abaixo.

Como funcionam os sistemas de controle de versão

O controle de versão é o processo sistemático de rastreamento e gerenciamento de atualizações de código-fonte e assets. Os sistemas de controle de versão são fundamentais para fluxos de trabalho eficientes, atuando como a única fonte da verdade para programadores, artistas e outros membros da equipe, permitindo que todos contribuam para uma base de código compartilhada de forma independente. Eles também atuam como uma rede de segurança, possibilitando a ação de “desfazer” atualizações de código se um erro catastrófico for introduzido durante o desenvolvimento.

Fatores como a dimensão e a distribuição geográfica da equipe podem influenciar quais sistemas de controle de versão um desenvolvedor de jogos pode optar por implementar. Desenvolvedores individuais podem achar que uma solução local é tudo o que precisam para permanecer no caminho certo, enquanto equipes maiores devem procurar um sistema de controle de versão mais robusto e escalável que os ajude a colaborar em fusos horários e regiões geográficas diferentes.

Por que usar sistemas de controle de versão?

Os sistemas de controle de versão são um pilar central de DevOps, que permitem que as equipes colaborem e iterem rapidamente no código-fonte de um projeto.

Trabalhar com controle de versão significa ter sempre um backup. Atualizações de projetos individuais são reunidas periodicamente em um único grupo, conhecido como “commit”, antes de serem mescladas no código-fonte principal. Se uma atualização causar um erro, será possível reverter o projeto para uma versão anterior e examinar a commit para diagnosticar o problema.

Com acesso a um histórico completo do projeto e a capacidade de desfazer erros, os sistemas de controle de versão simplificam o rastreio de bugs e facilitam a restauração de recursos removidos anteriormente.

Sistemas de controle de versão centralizados

Sistemas de controle de versão distribuídos

Os sistemas de controle de versão distribuídos permitem fazer check-in, ramificar e mesclar sem se conectar ao servidor principal. Cada colaborador trabalha em um repositório clonado, armazenado na nuvem. A principal vantagem desses sistemas é que os membros da equipe podem trabalhar separadamente com rapidez, sem se preocupar com redes lentas ou VPNs. Também é possível trabalhar em um projeto offline, mas ainda é necessária uma conexão com a Internet para enviar ou receber atualizações.

Os sistemas de controle de versão distribuídos podem vir com longos tempos de espera se você precisar baixar todo o histórico do seu projeto, principalmente em projetos grandes com extensos históricos de alterações. Os estúdios que trabalham com arquivos binários grandes devem monitorar cuidadosamente o uso do armazenamento, pois esses arquivos podem ocupar espaço rapidamente.

Os estúdios que procuram flexibilidade e potencial para aumentar a produtividade devem considerar o controle de versão distribuído.

Sistemas de controle de versão locais

Os sistemas de controle de versão locais são a forma mais simples de controle de versão e são usados mais por desenvolvedores individuais do que por equipes. Com o controle de versão local, todos os dados do projeto são armazenados em um único computador e as alterações feitas nos arquivos do projeto são armazenadas como patches. Cada patch contém apenas as atualizações implementadas desde o patch anterior. Se ocorrer um problema com uma versão específica do seu projeto, você deve examinar toda a coleção de patches para descobrir como os arquivos do projeto estavam em um momento específico para diagnosticar o problema.

Por estarem vinculados a um computador, os sistemas de controle de versão locais são essencialmente menos flexíveis do que os sistemas distribuídos e centralizados. A colaboração entre membros da equipe será um desafio se o banco de dados estiver comprometido, podendo ser difícil — ou até impossível — restaurar as informações perdidas.

Geralmente, não há problema em começar com o controle de versão local, mas assim que você começar a escalar (mesmo que esse aumento seja de uma para duas pessoas), é melhor começar a trabalhar de forma distribuída ou centralizada.

Sistemas de controle de versão distribuídos

Sistemas de controle de versão centralizados

Os sistemas de controle de versão centralizados usam um fluxo de trabalho de “check-in/envio” para se conectar ao servidor principal. Quaisquer alterações ou atualizações no código-fonte são armazenadas automaticamente no repositório como uma nova versão. Os sistemas de controle de versão centralizados apresentam recursos poderosos de ramificação e mesclagem que não exigem que o repositório seja clonado em várias máquinas. Nesse sentido, é potencialmente mais seguro.

Os sistemas de controle de versão centralizados exigem uma conexão de rede. Como as equipes estão vinculadas a uma única versão do projeto armazenada em um servidor, interrupções no serviço podem causar grandes lentidões. Outra desvantagem do controle de versão centralizado é que ele pode não escalonar bem. Quanto mais desenvolvedores você tiver contribuindo no projeto, menos oportunidades haverá para fazer mudanças em um ambiente estável, o que pode levar a problemas como conflitos de merge.

Se você estiver interessado em sistemas de controle de versão fáceis de configurar e usar, considere um fluxo de trabalho centralizado.

Sistemas de controle de versão locais

Os sistemas de controle de versão locais são a forma mais simples de controle de versão e são usados mais por desenvolvedores individuais do que por equipes. Com o controle de versão local, todos os dados do projeto são armazenados em um único computador e as alterações feitas nos arquivos do projeto são armazenadas como patches. Cada patch contém apenas as atualizações implementadas desde o patch anterior. Se ocorrer um problema com uma versão específica do seu projeto, você deve examinar toda a coleção de patches para descobrir como os arquivos do projeto estavam em um momento específico para diagnosticar o problema.

Por estarem vinculados a um computador, os sistemas de controle de versão locais são essencialmente menos flexíveis do que os sistemas distribuídos e centralizados. A colaboração entre membros da equipe será um desafio se o banco de dados estiver comprometido, podendo ser difícil — ou até impossível — restaurar as informações perdidas.

Geralmente, não há problema em começar com o controle de versão local, mas assim que você começar a escalar (mesmo que esse aumento seja de uma para duas pessoas), é melhor começar a trabalhar de forma distribuída ou centralizada.

Benefits of version control

Modification Tracking

Easily track modifications and merge across the project

File Comparison

Enables file comparison and identifies the differences between files

Troubleshooting

Easy troubleshooting due to the full archive of changes recorded within the VCS

Central Repository

The central repository allows seamless collaboration without impacting individual performance or code changes

File Sharing

Free up space and time by seamlessly sharing files with developers and stakeholders without having to constantly save copies of code adjustments

Distributed Development

Distributed development allows developers to work anywhere at their convenience

Version Control e-Book

Should you work centralized or distributed? Each has its advantages and disadvantages – learn which approach to version control will work best for your team in this free e-book.

Leituras semelhantes

Explore mais recursos para aprender sobre sistemas de controle de versão e outras ferramentas e processos de DevOps.

Agile versus DevOps

O Agile e DevOps têm os mesmos objetivos: entregar valor ao cliente com cronogramas regulares de lançamento , mas diferem ligeiramente em sua abordagem. Veja como eles podem trabalhar juntos.

Princípios do DevOps

Todo estúdio de jogos quer acelerar a produção e reduzir crises, e o DevOps é a melhor maneira de fazer isso acontecer. Comece aprendendo os principais princípios por trás de uma metodologia DevOps.

Benefícios do DevOps

A implementação de práticas de DevOps pode otimizar seu pipeline de desenvolvimento e deixar sua equipe e seus usuários mais felizes. Saiba mais sobre como o DevOps pode te ajudar.

Controle de versão para desenvolvimento de jogos

Trabalhe de forma distribuída e centralizada com os sistemas de controle de versão do Unity. Gerencie grandes arquivos binários com fluxos de trabalho baseados em arquivos e alterações. Armazene o código-fonte e os assets e rastreie as alterações com um sistema de controle de versão seguro, criado para qualquer engine.

Usamos cookies para garantir a melhor experiência no nosso site. Visite nossa página da política de cookies para obter mais informações.

Eu entendi