I want to snapshot incremental progress and designate a working version.
I want a tool that’s widely available and easy to reason about.
Use Git. 
Use a single repo  until it’s unwieldy .
: Some folks (Facebook, Google) argue Murcurial is preferable because it provides an extensible API, but in my experience, git has been sufficient for non-trivial work with tens of eng.
: Looking forward to things like GVFS for scaling.
: Managing multiple interdependent repos has a cost, which is why I trend to a monorepo, but I’ve also worked w a monorepo that took ages to sync. I’d be curious to see someone experiment w tools for managing several repos as an explicit alternative to a monorepo.