Por qué importa el locking
Algunos archivos no se pueden mergear. Un modelo 3D en .fbx, un archivo Photoshop en .psd, un ensamblaje CAD — todos son binarios, y las ediciones concurrentes no pueden reconciliarse.
El modelo de locking de Perforce
p4 edit character.fbx
p4 submit -d "Update rig"
p4 lock character.fbx
p4 unlock character.fbx
El modelo nativo de Git
Git no tiene concepto de locks exclusivos.
Locking de archivos Git LFS
git lfs lock character.fbx
git lfs unlock character.fbx
git lfs locks
# .gitattributes
*.fbx filter=lfs diff=lfs merge=lfs -text lockable
*.psd filter=lfs diff=lfs merge=lfs -text lockable
Comparando las experiencias
El locking de Perforce está integrado, es rápido y ligado directamente al archivo. El locking de Git LFS requiere un servidor LFS que soporte la API de locking, entradas .gitattributes, disciplina, y un push.
Almacenamiento binario
Perforce almacena binarios eficientemente con compresión delta. Git LFS almacena binarios en un object store separado.
Diff y merge
Ambos sistemas pueden integrar herramientas custom de diff y merge para binarios.
Tamaño del árbol de trabajo
p4 sync de Perforce puede traer solo directorios o filtros especificados. El sparse checkout de Git logra resultados similares.
Auditabilidad
El modelo centralizado de Perforce da logs de auditoría claros. El modelo distribuido de Git significa que los logs dependen de qué llega al servidor.
El patrón híbrido
Muchos estudios usan Git para código y Perforce para contenido.
Cuándo usar cada uno
- Flujo binary-heavy, locking esencial → Perforce.
- Flujo code-heavy, distribuido, dirigido por PR → Git.
- Mixto → ejecuta ambos.