4 ms·
Before git, most people in my larger circle used RCS, a UNIX version control system from the early 80's. It was very limited (basically each file had its own s
by dekhn 3y ago
Before git, most people in my larger circle used RCS, a UNIX version control system from the early 80's. It was very limited (basically each file had its own side-file that contained revision data, and there was no project-wide file) but did its job. Many people moved over to VCS, which used RCS files but added project-wide files so you could manage a dir tree.
After that, I think many people moved to subversion, which had a lot more functionality for distributed VC, for exmaple there was a server. svn was popular for a while but building it was painful (due to berkeley db) and it sort of never grew. I invested a lot of time in (specifically apache with mod_dav and mod_dav_svn) but lost interest in VC after fighting with subversion.
git came along and from what i can tell it mainly had "it's by linus, and the kernel uses it" and "it's fast" and "something about reflogs". I use git day-to-day but I still; can't explain how git became so ubiquitous; I find using it outright painful.
- dws 3y agoLightweight branches was a huge selling point. If you didn't do them often enough that they were rote, branches in RCS/CVS/SVN required ritual sacrifice.
- reportingsjr 3y agoMercurial (aka hg) was also gaining popularity at the same time as git. The interface was a lot nicer and more sane than git, but it had some serious performance limitations that hampered it. Both were definitely way better than SVN/CVS/etc.
- dekhn 3y agoYes, after using git for a few years I was introduced to Mercurial and it was like a breath of fresh air, although I'm also told hg added a number of things that made it much more usable, "right before I started using it". Since I have limited brain capacity I focus my efforts on being able to use git, not hg, merely because it has so much marketshare.
- cpach 3y agoNit-pick: Did you mean CVS?
- dekhn 3y agoYes, CVS.
- timr 3y agoYou have a weird/selective perspective. As someone who has used all of them in different companies since the 90s: RCS was ancient, even in the early 90s. Most widely found in things like UNIX source trees. CVS came along later (mid/late 90s), and was much more widely used. SVN came on the scene around the late 90s -- it was a massive improvement on CVS, and spread across open source and most professional shops like wildfire. Major sites like sourceforge were built on SVN, but also supported CVS. Git only became prevalent starting around 2006-2008, and adoption was actually really slow because of its inherent complexity. When Github appeared, that was really when the shift started in earnest. There were others along the way: MS SourceSafe, a moment when everyone was toying with Bitkeeper, etc., but these were as marginal as RCS.
- paulryanrogers 3y agoBazar was my first DVCS, used after SVN, and it became clear very quickly why Git used SHA revision IDs.
- timr 3y agoForgot about Bazar!
- jonstewart 3y agoSubversion -was- a massive improvement over CVS but the effort to create it only started in 2000 and it was early 2004 when it went 1.0. I think it was at the 2003 OSCON when Fitz et al introduced it? Everyone in the audience was stoked, but it only had a few good years before git eclipsed it.
- timr 3y agoSounds right. I didn't look up the exact dates. Tons of folks were using it before 1.0, though.
- zem 3y agodon't forget arch (aka "tla" for "tom lord's arch")! I played with it briefly back in the day but for some reason did not stick with it https://en.m.wikipedia.org/wiki/GNU_arch https://en.m.wikipedia.org/wiki/GNU_arch
- xarope 3y agoah yes, I still remember the rcs ci / co workflow
- dekhn 3y agoI mean I learned a lot back in the rcs days- I worked on a small team with a few million lines of code under RCS in a shared FS. The devs taught me about social locking protocol- basically, talking with your coworkers about what parts of code not to work on, because you'd have your hands down in the guts. One of my first real accomplishments was migrating that codebase from RCS to CVS- which was relatively easy as CVS used RCS under the hood.