Diferentes problemas, diferentes soluciones
Perforce fue lanzado en 1995 — una década antes de Git o Mercurial. Apunta a una forma particular de problema: contenido grande, a menudo binario; flujos altamente regulados; equipos que necesitan control de acceso granular y locks exclusivos.
Arquitectura
Perforce es centralizado, como SVN, pero diseñado para escala muy más allá del uso típico de SVN. Git es distribuido — cada clone es un repositorio completo.
Lo que Perforce hace brillantemente
- Locking de archivos.
- Streams - branching declarativo.
- Seguridad por ruta.
- Repos masivos.
- Submits atómicos entre archivos.
- Integración madura.
Lo que Git hace brillantemente
- Branching y merging baratos para trabajo code-heavy.
- Historia distribuida.
- Ecosistema masivo.
- Integración con flujos modernos de code review.
- Costo - Git es gratis; Perforce es licenciado.
Comandos cotidianos
# Perforce
p4 sync
p4 edit file.txt
p4 submit -d "Edit"
p4 changes
# Git
git pull
git add file.txt
git commit -m "Edit"
git push
git log
Branching
p4 stream -P main //my-depot/release
p4 stream -P main //my-depot/feature-x
Locking
p4 edit -t binary+l character.fbx
Casos de uso donde gana Perforce
- Desarrollo de juegos con terabytes de assets de arte.
- Estudios VFX con outputs masivos de render.
- Diseño de hardware con archivos CAD binarios.
- Industrias reguladas que necesitan trails de auditoría granulares.
Casos de uso donde gana Git
- Software open source.
- Desarrollo de apps web y móviles.
- Desarrollo de librerías y SDKs.
- Donde el flujo es "branch, PR, merge".
Enfoques híbridos
Muchos estudios de juegos grandes ejecutan Git para código del engine y Perforce para contenido.
Costo
Las licencias de Perforce / Helix Core son por usuario y no baratas.