Práticas recomendadas para controle de versão no Unity?


11

Estou um pouco confuso sobre como usar o controle de versão com o Unity, especialmente com objetos como cenas ou prefabs que não são apenas códigos.

Recentemente, tivemos um problema quando eu e meu colega estávamos trabalhando em diferentes partes da mesma cena. o que resultou em conflitos, ramificação e fusão em abundância.

No final, minha revisão foi substituída por suas alterações de qualquer maneira.

A única maneira que vejo no momento é nos revezando trabalhando nos mesmos objetos, mas isso não parece muito conveniente, especialmente porque todo o trabalho que estamos fazendo atualmente está nas cenas.

O que as pessoas costumam fazer nessas situações?

(Estamos usando Mercurial, BitBucket e SourceTree.)


1
Erm. Gostaria de comentar por que fui votado menos de 5 minutos depois de perguntar? Não posso melhorar a pergunta se não souber o que há de errado com ela.
Kaworu

2
Eu também me deparei com isso. Você pode colocar os scripts em nenhum prob, mas cenas etc parecer mais difícil
Ewan

1
Esses arquivos de cena são difíceis de mesclar ou são arquivos binários mais ou menos impossíveis? Se eles são binários, o Unity parece fornecer ferramentas de mesclagem (e talvez diff?) Para isso .
Nathan Cooper

@ NathanCooper Eles são binários até onde eu sei. Pelo menos eles se comportam como binários, e abri-los em um editor de texto me dá a mesma carga de mumbo-jumbo que qualquer outro arquivo compilado. Eu não conhecia o Smart Merge. Obrigado!
Kaworu

Respostas:


6

Você pode tentar a seguinte solução se estiver usando o GitHub.

  1. Na unidade, abra Editar-> Configurações do projeto -> Editor e, em seguida, no Inspetor de configurações do projeto.
  2. Altere "Modo de controle de versão" para "Meta arquivos visíveis".
  3. Altere "Modo de serialização de ativos" para "Forçar texto".

Este trabalho é bom para mim.


3

A maioria dos sistemas de controle de versão (VCS) é projetada para texto. Eles geralmente têm recursos muito poderosos e convenientes para comparar (diff ) e mesclar o código-fonte, e algumas ferramentas podem mesclar automaticamente as alterações (e fazer um trabalho decente de adivinhar como as alterações devem ser mescladas e em que momento o desenvolvedor deve ser solicitado). mesclagem manual).

Seria ótimo ter um melhor suporte diffe mesclagem de arquivos binários dos respectivos aplicativos que usam esses arquivos. O Microsoft Word, por exemplo, torna possível comparar dois documentos e, embora esteja longe de ser uma ferramenta de mesclagem conveniente, ainda é melhor que nada e me salvou horas em várias ocasiões. Infelizmente, o recurso de mesclagem geralmente é supervisionado em produtos de software ou difícil de implementar (como você visualiza uma diffcena em 3D?)

Quando se trata de arquivos binários, você recebe pouca ajuda do VCS. Além de não conseguirem armazenar alterações sucessivas de maneira eficiente, também não podem ajudá-lo a mesclar as alterações.

Há dois anos, fiz uma pergunta muito semelhante a respeito do uso do controle de versão no software de edição de vídeo . Acredito que as respostas que foram dadas à minha pergunta se apliquem parcialmente aqui também, a única (mas importante) diferença é que minha pergunta dizia respeito a arquivos grandes, enquanto no seu caso, os arquivos binários provavelmente são relativamente pequenos.

A abordagem que você encontrou, que é “revezar-se trabalhando nos mesmos objetos”, é a melhor. Se você não conseguir mesclar, não trabalhe paralelamente nas mesmas coisas. Se você trabalha no mesmo escritório, pode ser fácil. Caso contrário, a maioria dos sistemas de controle de versão ( incluindo o que você usa ; também é discutido aqui em um contexto de BitBucket) suporta bloqueio , que consiste no usuário de um VCS dizer, através do sistema, que ele está trabalhando em um determinado arquivo corretamente agora; outros usuários podem carregar a versão mais recente do arquivo, mas não é esperado que eles sejam alterados.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.