O que você está procurando?
Engine & platform

Conheça o Smart Locks, uma nova maneira de reduzir conflitos de mesclagem com o Unity Version Control

VÍTOR MIGUEL / UNITY TECHNOLOGIESSenior Technical Product Manager
Jul 10, 2023|9 Min
Conheça o Smart Locks, uma nova maneira de reduzir conflitos de mesclagem com o Unity Version Control
Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.

Na Unity, somos apaixonados por permitir que os criadores façam seu melhor trabalho. É por isso que a equipe do Unity DevOps está animada para apresentar o Smart Locks, um novo recurso do Unity Version Control.

O Smart Locks reduz enormemente os dolorosos conflitos de mesclagem comumente associados a bloqueios de arquivos e ramificações. Há muito tempo, os desenvolvedores têm usado a ramificação para uma iteração mais rápida e segura. Agora todos, inclusive os artistas, podem usar a ramificação para dimensionar projetos com confiança.

Ramificação sem preocupações para todas as disciplinas

O Smart Locks verifica automaticamente se você está trabalhando com a versão mais recente antes de permitir o bloqueio de um arquivo, o que minimiza muito o risco de conflitos de mesclagem e capacita as equipes a ramificar sem preocupações.

Se você é um artista que está criando uma ramificação de recurso, uma ramificação de tarefa ou uma ramificação pessoal, o Smart Locks oferece a flexibilidade de ramificar e trabalhar em paralelo com colegas de equipe sem se preocupar com conflitos. Você pode fazer experimentos e iterações mais rapidamente, enquanto o histórico do projeto principal permanece seguro.

O Smart Locks ajuda você a explorar diversos fluxos de trabalho. Em vez de mudar sua equipe para seguir seu sistema de controle de versão (VCS), é possível adaptar o Unity Version Control ao que funciona melhor para sua equipe.

Como funcionam os Smart Locks

Muitos usuários acreditam que o simples bloqueio ou check-out de um arquivo evitará automaticamente conflitos de mesclagem. Infelizmente, essa não é a realidade.

Os mecanismos tradicionais de bloqueio de arquivos oferecem proteção contra alguns conflitos; no entanto, esses bloqueios de arquivos não conseguiram percorrer ramo por ramo, permitindo que outro artista fizesse o check-out do mesmo arquivo em um ramo diferente. Essa incapacidade de viajar deixa as equipes vulneráveis a conflitos de mesclagem por não abordar a incompatibilidade subjacente do fluxo de trabalho com a ramificação.

Para entender como o Smart Locks funciona, vamos primeiro examinar como ocorre um conflito de mesclagem, mesmo quando as equipes estão usando os bloqueios de arquivo corretamente.

Antes, o uso de bloqueios de arquivos com ramificação deixava você vulnerável a conflitos de mesclagem.
Antes, o uso de bloqueios de arquivos com ramificação deixava você vulnerável a conflitos de mesclagem.

Esse cenário ilustra como as equipes que usam a ramificação frequentemente encontram conflitos de mesclagem, apesar de seus melhores esforços para usar o bloqueio de arquivos. O resultado? Perda de tempo e diminuição do moral da equipe. O Smart Locks resolve esse problema permitindo que os usuários definam uma filial como a fonte da verdade.

Quer você esteja ramificando ou trabalhando em um único thread, o bloqueio "viajará" pelos branches, seguindo uma linha de desenvolvimento exclusiva, até chegar ao branch de destino, onde a alteração é verificada ou mesclada novamente. O Smart Locks impõe essa linha única de desenvolvimento, quer você continue trabalhando em uma ramificação ou passe a criar ramificações secundárias.

Com o Smart Locks, você pode ramificar sem se preocupar com conflitos de mesclagem.
Com o Smart Locks, você pode ramificar sem se preocupar com conflitos de mesclagem.

Todas as solicitações de bloqueio associadas a um determinado arquivo agora estarão cientes de todas as novas versões existentes em diferentes ramificações. Isso significa que você não precisa se perguntar se as suas alterações entram em conflito com as de um colega de equipe ou se você está trabalhando em uma versão desatualizada.

Esse processo simples e eficaz evita que vários membros da equipe trabalhem simultaneamente em versões conflitantes, de modo que nenhuma alteração passe despercebida. Isso ajuda a garantir que a visão artística de todos seja considerada e torna a colaboração simultânea praticamente indolor.

Você pode definir regras de bloqueio personalizadas, incluindo regras de exclusão de ramificação.
Você pode definir regras de bloqueio personalizadas, incluindo regras de exclusão de ramificação.
Por que os artistas devem usar a ramificação?

A maioria dos programadores, provavelmente familiarizados com sistemas baseados em Git, já entende e aprecia o valor da ramificação. Os principais benefícios da ramificação para artistas são os mesmos que para programadores.

1. Iteração mais rápida

Quando você trabalha em ramificações, fica efetivamente separado do histórico principal do seu projeto. Esse isolamento permite que você crie protótipos e faça experimentos com segurança, sem ter que se preocupar com a possibilidade de interromper o projeto.

A experimentação segura permite que você repita continuamente e crie várias versões, para que possa escolher a sua favorita navegando pelo histórico do repositório. Que vença a melhor ideia.

2. Criar espaço para novas ideias

A ramificação reduz inerentemente o ruído da colaboração simultânea. Ele abre espaço para a criação de novas ideias e, ao mesmo tempo, mantém uma relação com o conceito original. Em termos simples, pense na diferença entre iterar em um Google Doc sozinho e trabalhar em um único documento com duzentos outros colaboradores.

É possível gerar novos conceitos sem medo de conflitos de mesclagem, armazenando-os em seu sistema de controle de versão em vez de trabalhar de forma independente em sua unidade local ou em uma fonte externa não integrada ao seu projeto principal.

3. Gerenciar fluxos de trabalho complexos

A ramificação permite que as equipes dividam fluxos de trabalho complexos em partes digeríveis. É possível criar ramificações que correspondam à forma como você organizou seu projeto. No desenvolvimento de jogos, é natural particionar o trabalho para facilitar o gerenciamento do projeto. Por exemplo, você pode dividir o trabalho dentro de uma equipe por recursos, personagens ou até mesmo níveis inteiros. Sua equipe pode se concentrar no trabalho que lhe foi atribuído em sua filial específica.

4. Escala com menos atrito

A divisão do trabalho em filiais permite que diferentes equipes e membros da equipe trabalhem em seu próprio ritmo, em seu próprio estilo e com seus próprios processos, tudo isso enquanto contribuem simultaneamente para o projeto maior. Essa eliminação de atritos não só facilita a colaboração, como também aumenta a probabilidade de sua equipe atualizar o histórico do projeto com maior frequência. Você pode enviar mais rapidamente e atender às expectativas dos jogadores.

5. Entenda o histórico completo de seu projeto

A ramificação facilita a visualização do quadro completo do histórico do projeto, enquanto a verificação das alterações no principal dificulta a visualização de toda a extensão das alterações. A ramificação ajuda a identificar essas alterações mais rapidamente.

Exclusão de ramificações para facilitar a experimentação

Projetamos o Smart Locks para dar a todos os membros da sua equipe flexibilidade em termos de como eles gostam de trabalhar. Também reconhecemos que lidar com bloqueios de arquivos complexos pode ser um obstáculo em determinadas situações, como nas fases de ideação e experimentação do projeto.

É por isso que, além dos bloqueios de viagem, também criamos um novo recurso de exclusão de filiais. Isso permite que você exclua ramificações do mecanismo de bloqueio, definindo regras de bloqueio personalizadas. Quando você sabe que nunca precisará fazer merge de volta para o branch de origem, pode criar protótipos ou fazer experimentos dentro do seu branch, sem ser limitado por restrições de bloqueio de arquivos.

GUI aprimorada para melhor percepção das filiais

Para garantir o acompanhamento de projetos complexos e permitir a visualização clara da lista de bloqueios existente, também melhoramos a interface gráfica do usuário (GUI) no cliente para desktop e no UDash. Ao visualizar seu histórico de bloqueios, você pode ver facilmente quem criou um bloqueio e quando.

Entenda intuitivamente seu histórico de bloqueios com aprimoramentos de visualização.
Entenda intuitivamente seu histórico de bloqueios com aprimoramentos de visualização.

Além disso, colocamos recursos mais proeminentes para indicar como bloquear e desbloquear arquivos, acompanhados de mensagens úteis que o notificarão sobre quaisquer bloqueios existentes em um arquivo específico.

Mensagens úteis o notificam sobre bloqueios existentes em arquivos específicos.
Mensagens úteis o notificam sobre bloqueios existentes em arquivos específicos.
Como experimentar os Smart Locks

Para aproveitar esse recurso revolucionário, basta atualizar sua instalação do Unity Version Control para a versão mais recente. Para clientes locais ou antigos clientes do Plastic SCM Enterprise, será necessário atualizar seus servidores e clientes para aproveitar totalmente os benefícios do Smart Locks.

Não deixe de ler a documentação antes de começar.

Novo no Version Control da Unity?

O Unity Version Control é uma ferramenta de controle de versão independente de mecanismo com a agilidade necessária para lidar com arquivos grandes e binários com rapidez. Com fluxos de trabalho otimizados para artistas e programadores em estúdios de jogos de todos os tamanhos, é possível melhorar a colaboração da equipe e aumentar a produtividade para oferecer jogos de alta qualidade com mais rapidez e eficiência. Para começar gratuitamente, inscreva-se no Unity DevOps (aplicam-se os termos).