Source control

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.