Meilleures pratiques pour le contrôle de version dans Unity?


11

Je suis un peu confus sur la façon d'utiliser le contrôle de version avec Unity, en particulier avec des objets tels que des scènes ou des préfabriqués qui ne sont pas uniquement du code.

Nous avons eu un problème récemment lorsque mon collègue et moi travaillions sur différentes parties de la même scène. ce qui a entraîné des conflits, des ramifications et des fusions à gogo.

Finalement, ma révision a été annulée par ses changements de toute façon.

La seule façon que je vois en ce moment est que nous travaillions à tour de rôle sur les mêmes objets, mais cela ne semble pas très pratique, d'autant plus que tout le travail que nous faisons actuellement est dans les scènes.

Que font généralement les gens dans ces situations?

(Nous utilisons Mercurial, BitBucket et SourceTree.)


1
Euh. Voulez-vous commenter pourquoi j'ai été rétrogradé moins de 5 minutes après avoir demandé? Je ne peux pas améliorer la question si je ne sais pas ce qui ne va pas.
Kaworu

2
J'ai également rencontré cela. Vous pouvez mettre les scripts sans problème, mais les scènes, etc. semblent plus difficiles
Ewan

1
Ces fichiers de scène sont-ils des fichiers texte difficiles à fusionner ou sont-ils des fichiers binaires plus ou moins impossibles? S'il s'agit de binaires, Unity semble fournir des outils de fusion (et peut-être de diff?) Pour cela .
Nathan Cooper

@NathanCooper Ce sont des binaires pour autant que je sache. Au moins, ils se comportent comme des binaires, et les ouvrir dans un éditeur de texte me donne la même charge de mumbo-jumbo que tout autre fichier compilé. Je ne connaissais pas Smart Merge. Merci!
Kaworu

Réponses:


6

Vous pouvez essayer la solution suivante si vous utilisez GitHub.

  1. Dans l'unité, ouvrez Édition-> Paramètres du projet -> Éditeur, puis dans Inspecteur des paramètres du projet.
  2. Changez le "Mode de contrôle de version" en "Méta-fichiers visibles".
  3. Remplacez «Mode de sérialisation des actifs» par «Forcer le texte».

Cela fonctionne bien pour moi.


3

La plupart des systèmes de contrôle de version (VCS) sont conçus pour le texte. Ils ont généralement des fonctionnalités très puissantes et pratiques pour comparer ( diff) et fusionner le code source, et certains outils peuvent même fusionner automatiquement les modifications (et faire un travail décent pour deviner comment les modifications doivent être fusionnées et à quel moment le développeur doit être sollicité pour effectuer une fusion manuelle).

Ce serait formidable d'avoir un meilleur support diffet une meilleure fusion des fichiers binaires à partir des applications respectives qui utilisent ces fichiers. Microsoft Word, par exemple, permet de comparer deux documents, et bien qu'il soit loin d'être un outil de fusion pratique, c'est toujours mieux que rien et cela m'a fait gagner des heures à plusieurs reprises. Malheureusement, la fonctionnalité de fusion est généralement soit supervisée dans les produits logiciels, soit difficile à implémenter (comment visualisez-vous diffune scène 3D?)

En ce qui concerne les fichiers binaires, vous obtenez peu d'aide de VCS. Non seulement ils ne peuvent pas stocker efficacement les modifications successives, mais ils ne peuvent pas non plus vous aider à fusionner les modifications.

Il y a deux ans, j'ai posé une question très similaire concernant l' utilisation du contrôle de version dans les logiciels de montage vidéo . Je pense que les réponses qui ont été apportées à ma question s'appliquent également ici, la seule différence (mais importante) étant que ma question concernait de gros fichiers, alors que dans votre cas, les fichiers binaires sont probablement relativement petits.

L'approche que vous avez trouvée, à savoir «travailler à tour de rôle sur les mêmes objets», est la bonne. Si vous ne pouvez pas fusionner, ne travaillez pas en parallèle sur les mêmes choses. Si vous travaillez dans le même bureau, cela pourrait être facile à faire. Sinon, la plupart des systèmes de contrôle de version ( y compris celui que vous utilisez ; il est également discuté ici dans un contexte de BitBucket) prennent en charge le verrouillage , qui consiste pour l'utilisateur d'un VCS à dire, via le système, qu'il travaille sur un droit de fichier donné maintenant; d'autres utilisateurs peuvent charger la dernière version du fichier, mais ils ne sont pas censés la modifier.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.