I've spent too long watching teams pick between two bad options: Perforce (locks, but a central server that reconciles over the whole depot and a per-seat bill) or Git (free branches, but no way to stop two people editing the same .umap).
So I built a small open-source thing called BlackGit to take both. It's MIT, on GitHub: https://github.com/zhuzhonghua/blackgit
What it does, in plain terms
-
git black lock <file>takes a binary file exclusively, exactly likep4 edit. The lock lives on the server. It refuses other people's pushes touching that file and names the holder. Your local branches and commits are never blocked — you can still branch off and throw work away. -
git black cloneis a partial clone (blob:none+ empty sparse-checkout). A 1.4 GB server repo lands at 168 KB on disk. Thengit black follow assets/levels/city.umapmaterializes just the file you open (60 MB in the demo). No LFS, no full history. - The server is one Docker container sitting in front of your existing GitHub/GitLab. It can also enforce path-level blob permissions (SVN authz format).
60 seconds to try it
pip install blackgit
docker run -d -p 8081:8081 -v /data/blackgit:/data \
-e BLACKGIT_UPSTREAM=https://github.com/you/game.git \
ghcr.io/zhuzhonghua/blackgit:latest
git black clone http://localhost:8081/game.git
Honest disclaimers
It's v0.0.2 / beta. There's no artist GUI (commands only), no chunking/dedup of large binaries, and it requires Git 2.54+. It's not a Perforce replacement tomorrow. I'm looking for game teams willing to kick the tires on a real repo and tell me where it breaks.
What would you want to see first? Happy to answer in the comments.
Top comments (0)