Enmarcar la decisión
"¿Qué VCS deberíamos usar?" rara vez tiene una respuesta correcta. El frame correcto es: "¿Qué restricciones impone nuestro trabajo, y qué sistema encaja mejor?"
Restricciones de carga de trabajo
- Mayormente código texto, branching frecuente → Git.
- Mayormente contenido binario, locks exclusivos esenciales → Perforce.
- Mixto, con código y assets separables limpiamente → ejecuta ambos.
- Control centralizado con branching simple → SVN sigue siendo aceptable.
Restricciones de equipo
- Distribuido, a menudo offline → VCS distribuido.
- Una sola sede, siempre online → cualquier modelo.
- Mixto con no-ingenieros → UX más amigable importa.
- Contribuidores open source → Git sin duda.
Restricciones de ecosistema
- Modernidad de CI/CD → Git abrumadoramente.
- Engine de juegos / tooling DCC → Perforce a menudo.
- Infraestructura existente → la continuidad tiene valor real.
Restricciones de cumplimiento
- Control de acceso por ruta → Perforce o SVN.
- Auditoría del lado servidor de operaciones de lectura → sistemas centralizados.
- Commits firmados → Git con tooling clase sigstore.
Restricciones de costo
- Bootstrap sin presupuesto → Git en GitHub free tier, GitLab CE o Gitea.
- Empresa financiada con necesidades binarias → Perforce se justifica.
- Equipo SaaS de tamaño medio → tier de pago de GitHub o GitLab.
Árbol de decisión
1. ¿Es la mayor parte de tu contenido binario no mergeable?
Sí → Perforce (o Perforce + Git híbrido). Para.
No → continúa.
2. ¿Necesitas control de acceso por ruta o auditoría de lectura?
Sí → SVN, Perforce, o Git con inversión significativa en tooling.
No → continúa.
3. ¿Los contribuidores trabajan offline o distribuidos?
Sí → Git (o Mercurial). Continúa.
No → cualquier modelo está bien.
4. ¿Necesitas ecosistema estilo GitHub?
Sí → Git. Para.
No → considera Mercurial por UX, SVN por centralización.
5. Default → Git.
Escenarios de muestra
- Startup web SaaS, 5 ingenieros → Git en GitHub o GitLab.
- Estudio de juegos, 200 personas → Perforce para assets, Git para código.
- Agencia gubernamental regulada, 50 ingenieros → GitLab self-hosted.
- Librería open source → Git en GitHub.
- Tooling corporativo interno, 20 ingenieros → Git sigue siendo la respuesta.
- Firma de diseño de hardware con trabajo CAD-heavy → Perforce.
Rutas de migración
# SVN a Git
git svn clone --stdlayout --authors-file=authors.txt <url>
# Mercurial a Git
~/fast-export/hg-fast-export.sh -r <hg-repo>
# Perforce a Git
git p4 clone //depot/main@all my-git-repo
Evitar parálisis de análisis
Si no puedes decidir, la respuesta es Git. Es el ecosistema más grande, la herramienta más familiar para nuevas contrataciones, y la más fácil de migrar después si fuera necesario.
Revisar la elección
Reevalúa cada dos años.