Source control

Solution

Use Git. 1

Use a single repo 2 until it's unwieldy. 3

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.

Footnotes

  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. 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. 

  3. Looking forward to things like GVFS for scaling. 

Feedback

Thoughts? Suggestions? Hit me up @erikeldridge

License

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 International License, and code samples are licensed under the MIT license.