From CVS to Git, thirty years of source control

(evilgeniuslabs.ca)

13 points | by andsoitis 2 days ago ago

10 comments

  • dn3500 5 minutes ago ago

    There were several proprietary systems in the late 1980s and early 1990s. The one I remember was DSEE from Apollo Computer. It was integrated with the file system such that commits and branches worked like zfs snapshots. You could just "cd" to whatever tag, branch, or individual commit you wanted. No checkouts required. Very cool, I wish we still had that today. DSEE was spun off as Clearcase, acquired by IBM, then I don't know what happened to it after that.

  • zabzonk 16 minutes ago ago

    I sometimes wonder what would have happened if Atlassian had stuck with Mercurial support on Bitbucket - I don't think they can pretend that switching to git did very much for them. I love(d) Mercurial, and particularly TortoiseHg integration on Windows.

    • eesmith 4 minutes ago ago

      If they had, I wouldn't have switched to Sourcehut, at least not for a while.

      Though at some point I would have realized that Atlassian was the wrong fit for my needs as a single-dev, no-AI project and switched.

  • binaryturtle 31 minutes ago ago

    I use Subversion w/o a server too. You can have your repositories locally (file:///Path/to/repository). All my own (single man) projects are in local SVN repositories. For my use case git is just too much extra friction, and I still love to have my one single unique global revisions number that is linearly increasing with each commit. :)

  • oblio 19 minutes ago ago

    Fairly accurate in my experience.

    Also a note about a specific bias from old-heads:

    At the start things move much faster and changes are more impactful, but the start is ultimately much shorter than the rest of the lifecycle. That's why a lot of the stories you read about tech are about the early years (let's say 5-10 years, chronologically) and less so about the mature years (which can span 3+ decades, chronologically). So the early period has outsized visibility because it's cooler, I guess?

    * * *

    Using SCMs as an example:

    SSCS - 1972. But at that point there was no internet and the number of computer users was minuscule. So SCCS is just a curiousity, a footnote, probably used by 0.000001% of Git users. So at this point for most practitioners SCMs basically don't exist.

    RCS - 1982. See SCCS. SCMs still practically don't exist for most practitioners.

    CVS - 1986. Now the internet is getting started and the number of computers in the world has increased by orders of magnitude. Even so, adoption of core development technologies like SCMs is slow and yes, it took CVS at least 10 years to become somewhat established. Even at this point, probably at least 50% of software developers still don't use SCMs (especially less professional ones). Visual Source Safe runs in parallel to CVS, with its own problems described in the article.

    SVN - 2000. The internet is in full swing, computers are ubiquitous, things are really moving. It's super hard to evaluate how many developers still don't use SCMs, but the number is going down (maybe 30-40%?) and SVN is taking the world by storm. Even after the launch of Git in 2005, until at least 2009-2010, SVN had a solid shot at winning. It's tooling was much better, especially the GUIs, TortoiseSVN & co.

    Git - 2005. Git is launched in roughly the same era as SVN, just towards the end. Once Github gets going it starts to take over the SCM scape, primarily from SVN, sometimes from CVS, Perforce, and also from non-SCM people.

    So, if you look at the real dates implied above: CVS, SVN, Git are widely adopted in about a 10-12 year span (something like 1998-2000 to 2008-2010). Then we reach the current mature (monoculture?) stage where we're already at least 16 years in and it's quite likely this phase will last decades.

    This story has happened for lots of tech. Many different PC OSes during the 1970-1980s, then basically only 3 since about 30 years - 1995 (Windows, MacOS, Linux).

    Many CPU architectures during the 1970-1980s, then basically only 2 since about 30 years (x86, ARM - maaaaybe RISC-V).

    • raverbashing 8 minutes ago ago

      Nice summary

      More than technologies, what really evolved were the ideas on how to work and manage SCM systems. Things like atomic multi-file commits, using unified diffs, management by "patch queues" more than simply merging branches ad-hoc, and of course decentralized SCMs

  • hnarayanan 21 minutes ago ago

    Where are my RCS people at?

  • lysace 20 minutes ago ago

    The slow-branch problem, where the team avoided branching because it took five minutes to create one and an afternoon to merge it.

    I kind of "enjoyed" this aspect of CVS (for small teams, at least) since it strongly encouraged trunk based development.

  • sgbeal 30 minutes ago ago

    Web design tip: don't have animations within a short distance of text, as human eyes evolved to follow the flashiest/fastest-moving thing around, which makes such text literally illegible to many of us. This particular site takes the cake in that regard by animating the whole page background.