Problem
I want to snapshot incremental progress and designate a working version.
I want a tool that’s widely available and easy to reason about.
Solution
Use Git. [1]
Use a single repo [2] until it’s unwieldy [3].
[1]: 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.
[2]: Looking forward to things like GVFS for scaling.
[3]: 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.