On Fri, 28 Jan 2011 10:03:10 +1000, Michael G Schwern <schw...@pobox.com> wrote:
> On 2011.1.28 12:13 AM, Peter Corlett wrote: > > Of course, when the only tool you have is CVS, any other version control > > system lookslike a good idea. I suspect CVS was the result of a drunken bet > > that it wasn't possible to make RCS worse. > > I give a lightning a talk called "Subversion Lifetime Achievement Award", the > premise of which is that if Subversion hadn't fixed the superficial flaws in > CVS we never would have seen the fundamental flaws in the model. Distributed > version control would not have taken off like it had if we were still > struggling to make a branch. I propose it benefited from all the folks who > happily and easily used "svn cp" and then found no sane way to merge back. > > What I discovered during my history was this timeline of Open Source version > control tools: > > 1972 SCCS The first version control system We actively used SCCS up to 2009. I started converting SCCS to git end of 2007 and with some help of others, I was able to convert whole trees of SCCS repos into a single git repo. I'm happy to have the SCCS days way in my past now. Where is bitkeeper in this list? I know it is still used in the wild, and it has SCCS in its guts. > 1982 RCS The first vaguely sensible version control system > > 1986 CVS Now people can work on multiple files AT THE SAME TIME > > 1990 CVS adds branching > 1995 CVS adds anonymous network access. Open Source development as > we know it is now possible Wgere is perforce in this list? The *only* thing I liked about p4 was the GUI. Neither git (git-gui and gitk are two different GUI's that should have been one with the *same* look-and-feel) not svn (doesn't have any sensible GUI at all!) come close to the user-friendlyness of p4v. Of course that only counts if you like GUI's, which happen to be the main reason I got my colleages into accepting the move from SCCS to git: SCCS has no GUI at all. > 2001 SVN A "better" CVS > > At this point, CVS has been the only real choice for an Open Source version > control system for 15 years. Its basic model is one from 1982. TWO > generations of programmers grew up all thinking about version control in > exactly the same way. > > Before distributed version control, we did not think or talk about version > control. We talked and thought and argued about CVS. We did not know any > other way to think about version control. Everything was geared towards this > one style of version control. All our tools. All our processes. Of course > DVCS isn't going to fit in. Everything has to change. > > Of course you don't need branching, merging is hard so you've never branched. > Of course you don't revert, reversions are hard so you don't revert. Of > course you don't make tiny commits, every commit is inflicted on the whole > project, so you make enormous commits when it's totally ready. This is all > twisting your brain to fit you version control system > > CVS has fucked your brain. Here is the best deprogramming I know. > http://hginit.com/00.html > > After SVN revealed the problem, the DVCSes march forward. And still there are way too many people that do not want to move onward, because the way SVN has fixated that brain image into *THE* only workable way of doing work that they would not even consider moving towards something easier to get work done *together*. Maybe svn is a nice VCS for people that work alone on a project. But please please don't inflict it on groups. It is almost impossible to synchronise after a local branch was added. In svn is is mostly the easiest way to just throw away everything and clone again, which of course takes ages. Because it already takes so long, I'm prepared to go the next step and use git svn clone. It takes even longer, but now I have sensible tools to analyse the other workers commits. > 2001 Arch The first mildly popular distributed version control system. > Unfortunately, it's bat shit insane. > 2002 Darcs > 2003 Monotone > 2003 SVK > 2005 hg > 2005 git > 2007 bzr > > Nobody is making a CVS-style version control system any more because the model > sucks, it constrains how you run your project, and we finally realize that. > Even the original Subversion developers have bailed on it. -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using 5.00307 through 5.12 and porting perl5.13.x on HP-UX 10.20, 11.00, 11.11, 11.23 and 11.31, OpenSuSE 10.1, 11.0 .. 11.3 and AIX 5.2 and 5.3. http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/