I don&#x27;t agree about leaving files outside version control - this always ends in tears.<p>Regarding versioning, you can always version any file by storing every revision and compressing them as best you can. I believe this is what Perforce does. Repo size can of course become an issue, and git doesn&#x27;t do a great job with that, since it stores everything, and stores it locally. Perforce can at least discard old revisions and lets you select history depth on a per-file or file type basis.<p>The more serious problem with git in my view is that there&#x27;s no good automated merging tools for many types of files, nor are any likely to arise. And more importantly, most people working on your average game aren&#x27;t interested in forming in-depth mental models of how their tools work, and certainly don&#x27;t want to have to pick up the pieces when they go wrong. So for most files, you need an exclusive lock (check in&#x2F;check out, lock&#x2F;unlock, etc.) model, or similar. That works quite well. But for obvious reasons, git just doesn&#x27;t support this model at all, and I believe Mercurial is the same - and no amount of transparent&#x2F;magic large file storage backends or whatever are going to fix that.