Il existe de nombreux systèmes de contrôle de version disponibles, y compris des systèmes à source ouverte tels que Subversion , Git et Mercurial , ainsi que des systèmes commerciaux tels que Perforce .
Dans quelle mesure soutiennent-ils le processus de développement de jeux? Quels sont les problèmes d'utilisation de VCS, en ce qui concerne les fichiers non-texte (fichiers binaires), les grands projets, etc.? Quelles sont les solutions à ces problèmes, le cas échéant?
Pour organiser les réponses, essayons paquet par paquet. Mettez à jour chaque paquet / réponse avec vos résultats.
Indiquez également dans votre réponse de brefs détails indiquant si votre VCS est gratuit ou commercial, distribué par opposition à centralisé, etc.
Mise à jour : Nous avons trouvé un article intéressant comparant deux des VCS ci-dessous - apparemment, Git est MacGyver et Mercurial est Bond . Eh bien, je suis content que ce soit réglé ... Et l'auteur a une belle citation à la fin:
Il est correct de faire du prosélytisme à ceux qui ne sont pas encore passés à un VCS distribué, mais essayer de convertir un utilisateur Git en Mercurial (ou vice-versa) est une perte de temps et d'énergie pour tout le monde.
Surtout que le véritable ennemi de Git et Mercurial est Subversion . Dang, c'est un monde de code-manger dans FOSS-land ...
la source
Réponses:
Git
Récemment, je suis dans le train Git (j'ai utilisé SVN et Mercurial). Jusqu'ici, j'aime beaucoup ce que j'ai avec Git. Il est loin d’être difficile à installer et de plus en plus d’outils de développement commencent à l’utiliser.
C'est un système de contrôle de version distribué. Cela nous permet d’avoir notre propre espace de type coffre indépendant. Je peux travailler dans ma propre région et vous inviter à visualiser très facilement les ensembles de modifications. Je peux revenir en arrière dans mon propre espace sans compromettre le dépôt central. Je peux valider, créer des branches et faire tout ce que vous pouvez faire localement avec SVN. J'aime vraiment avoir ce contrôle.
Avec SVN, vous devez avoir accès à votre rapport pour pouvoir vous engager. Que se passe-t-il si vous êtes sur la route ou dans un café sans internet? Pas bon.
Bien sûr, SVN est beaucoup plus simple à apprendre, mais je pense que les avantages du contrôle de source distribué l'emportent largement sur le fait qu'il a une petite courbe d'apprentissage.
J'aime aussi le fait qu'il soit plus intelligent de fusionner.
Un inconvénient majeur de GIT est qu’il stocke l’ensemble de l’histoire localement. (Oui, vous pouvez effectuer une intervention chirurgicale pour réduire cela, mais c'est le comportement par défaut). Ce n'est pas du tout un problème pour les fichiers source, mais si vous avez un grand projet avec des gigaoctets de données d'actifs, cela devient rapidement un problème. D'après mon expérience actuelle, je ne recommanderais GIT que pour les pensions plus petites ou uniquement à la source.
Si vous êtes toujours intéressé par GIT, consultez http://thkoch2001.github.io/whygitisbetter/ pour de bonnes informations / mesures. Voir aussi https://git.wiki.kernel.org/index.php/GitSvnComparsion
la source
Mercuriel
Principales caractéristiques:
En ce qui concerne l’utilisation de fichiers non-textuels, les dernières versions de Mercurial (> = 2.0) fournissent l’ extension largefile par défaut :
Il existe d'autres extensions offrant des solutions similaires, telles que l' extension bigfiles, qui vous permet de stocker vos ressources dans le même référentiel Mercurial, mais d'extraire uniquement les fichiers binaires dont vous avez besoin, le cas échéant.
Je ne suis au courant d'aucun problème concernant les grands projets au-delà de ceux liés à la présence de gros fichiers binaires. Le projet Python est un projet volumineux utilisant Mercurial .
Joel Spolsky a écrit un mini-tutoriel sur l’utilisation de Mercurial dans Subversion Re-education
la source
svn:needs-lock
, et comme il n’existe pas non plus de savoir qui travaille localement sur quels fichiers , vous êtes de nouveau en train de passer un bol à l’équipe, littéralement (vous n’êtes pas autorisé à éditer sans bol sur votre bureau). BigFiles extension ou pas, ce VCS est inutile pour les fichiers binaires sans une solution pratique à cela.Forcément
Perforce (commercial / source fermée, centralisé) est la norme de l'industrie pour un certain nombre de raisons.
Cela dit, il est douloureusement évident, presque quotidiennement, que Perforce ne pense pas que sa position dans le secteur soit menacée. Leurs outils visuels, notamment P4V et P4SCC (intégration à Visual Studio), sont lents et bogués, ce dernier étant connu pour geler Visual Studio pour le plus grand plaisir de celui-ci. AnkhSVN est en avance sur Perforce.
Commentaire de xan: Il est à noter cependant que leur outil de fusion, P4Merge (utilisé pour différencier et fusionner), est excellent et bien supérieur aux goûts de Tortoise Merge. Étonnamment, ce composant est disponible gratuitement dans le package P4 Visual Tools.
Commentaire de slicedlime: Un autre inconvénient de Perforce est qu’il est très pénible de se ramifier, en particulier si vous avez de grands arbres. Presque tous les autres vcs sont meilleurs pour créer des branches et fusionner. C'est généralement un petit prix à payer pour les avantages ci-dessus cependant.
Commentaire de roe: Perforce est extrêmement bavard. Il n'y a pas grand chose à faire sans le serveur impliqué. Plus particulièrement, vous avez besoin du serveur pour pouvoir ouvrir pour éditer, ce qui signifie que vous devez sauter quelques étapes si vous souhaitez interrompre la connexion au serveur.
Commentaire de jrista: En tant qu’utilisateur quotidien de Perforce depuis plus de deux ans, avec une équipe de développement et d’ingénierie de qualité de plus de 100 personnes, je le connais très bien. Bien que ce soit un système de contrôle de source décent, il présente des inconvénients que les évaluateurs de systèmes SCC devraient connaître:
la source
Subversion
Open-source, centralisé
Fichiers Blender - Je ne suis pas tout à fait sûr que les fichiers .blend soient binaires (ils en ont l'air), mais je n'ai eu aucun problème à les ajouter à Subversion. Après avoir effectué quelques expériences, l’augmentation de la taille du fichier pour les fichiers modifiés semble minime, il ne s’agit donc pas simplement de copier dans l’ensemble du fichier.
Grands projets - Cela fonctionne, même si cela peut devenir bizarre. Il est certainement capable de gérer des référentiels d'au moins 5,5 Go (taille totale du répertoire de référentiel sur le serveur; principalement des ressources binaires).
Données dupliquées sur le client - Subversion conserve une copie dupliquée de chaque fichier de l'espace de travail de l'utilisateur en tant que copie vierge. L'avantage de ceci est que vous pouvez faire un diff ou revenir en arrière sans retourner au serveur. L'inconvénient est que vos 10 Go de fichiers de travail prennent 20 Go d'espace disque.
La liste des ignorés est une propriété d'un répertoire (simple avec une interface graphique, ennuyeuse sur la ligne de commande).
Subversion permet le verrouillage de fichiers / fichiers - ce qui est très utile si plusieurs artistes et concepteurs travaillent sur les mêmes fichiers.
Les externes sont un excellent moyen de gérer le code partagé (par exemple, une bibliothèque ou une base) entre des projets.
la source
AlienBrain
De Avid :
Je n'ai aucune expérience avec AlienBrain et je n'en ai entendu parler que dans le livre Game Coding Complete de Mike McShaffry. Il semble cependant y croire:
Bien sûr, il le décrit également comme:
la source
Team Foundation Server
de Microsoft
J'ai beaucoup utilisé TFS sur des projets de simulateur MILSPEC, et c'est très bien. Probablement pas le meilleur si vous êtes sur un Mac, bien qu'il existe un plugin eclipse ces jours-ci. La version hébergée dans le cloud prend en charge les référentiels git pour le back-end de contrôle de source.
Il est gratuit pour un maximum de cinq utilisateurs de Visual Studio Online (autorise les sources fermées; aucune limite de taille du référentiel), où il est hébergé dans le cloud. Si vous souhaitez l'héberger localement, cela peut être coûteux.
Ce que j'aime le plus, ce sont les fonctionnalités de gestion de l’ingénierie logicielle et le fait qu’il gère très facilement les gros fichiers et les fichiers binaires.
la source