Cadrer la décision
"Quel VCS devrions-nous utiliser ?" a rarement une réponse correcte. Le bon cadrage est : "Quelles contraintes notre travail impose-t-il, et quel système convient le mieux ?"
Contraintes de charge de travail
- Principalement code texte, branching fréquent → Git.
- Principalement contenu binaire, verrous exclusifs essentiels → Perforce.
- Mixte, avec code et assets séparables proprement → faites tourner les deux.
- Contrôle centralisé avec branching simple → SVN reste acceptable.
Contraintes d'équipe
- Distribué, souvent offline → VCS distribué.
- Mono-site, toujours online → l'un ou l'autre modèle.
- Mixte avec non-ingénieurs → UX plus amicale compte.
- Contributeurs open source → Git, sans question.
Contraintes d'écosystème
- Modernité CI/CD → Git massivement.
- Engine de jeu / tooling DCC → Perforce souvent.
- Infrastructure existante → la continuité a une vraie valeur.
Contraintes de conformité
- Contrôle d'accès par chemin → Perforce ou SVN.
- Audit côté serveur des opérations de lecture → systèmes centralisés.
- Commits signés → Git avec tooling classe sigstore.
Contraintes de coût
- Bootstrap sans budget → Git sur GitHub free tier, GitLab CE ou Gitea.
- Entreprise financée avec besoins binaires → Perforce se justifie.
- Équipe SaaS de taille moyenne → tier payant GitHub ou GitLab.
Arbre de décision
1. La majorité de votre contenu est-elle binaire non-mergeable ?
Oui → Perforce (ou Perforce + Git hybride). Stop.
Non → continuer.
2. Avez-vous besoin de contrôle d'accès par chemin ou d'audit de lecture ?
Oui → SVN, Perforce, ou Git avec investissement significatif en tooling.
Non → continuer.
3. Les contributeurs travaillent-ils offline ou distribués ?
Oui → Git (ou Mercurial). Continuer.
Non → l'un ou l'autre modèle convient.
4. Avez-vous besoin de l'écosystème style GitHub ?
Oui → Git. Stop.
Non → considérez Mercurial pour l'UX, SVN pour la centralisation.
5. Défaut → Git.
Scénarios d'exemple
- Startup web SaaS, 5 ingénieurs → Git sur GitHub ou GitLab.
- Studio de jeu, 200 personnes → Perforce pour assets, Git pour code.
- Agence gouvernementale, régulée, 50 ingénieurs → GitLab self-hosté.
- Bibliothèque open source → Git sur GitHub.
- Tooling corporatif interne, 20 ingénieurs → Git reste la réponse.
- Firme de design hardware avec travail CAD-heavy → Perforce.
Chemins de migration
# SVN vers Git
git svn clone --stdlayout --authors-file=authors.txt <url>
# Mercurial vers Git
~/fast-export/hg-fast-export.sh -r <hg-repo>
# Perforce vers Git
git p4 clone //depot/main@all my-git-repo
Éviter la paralysie d'analyse
Si vous ne pouvez pas décider, la réponse est Git.
Réviser le choix
Réévaluez tous les deux ans.