On 3/14/07, Brian Mitchell <binary42 / gmail.com> wrote:
> I can't resist replying to this troll. I call FUD on the "distributed
> version control systems without much proven technology behind them"
> claim until we get details. I'd really like to hear why you think you
> have a winner just because something is different. It's obvious you
> think you have a great reason to feel strongly about using Subversion.
> I think it is only fair that you share why if you plan on telling
> people such absolutes. So please, enlighten me.

Careful who you call troll. You'll find your assumption comes back to bite you.

Technology is proven by (1) wide use and (2) long experience. CVS and
Subversion at this point are proven technologies that are widely
adopted. That doesn't necessarily make them best of class, but it
means that people know what to expect from them. Some of that will
include bugs, but the core technology is proven. There are billions of
lines of code in CVS and Subversion systems being protected and
managed right now.

Subversion has meaningfully improved upon CVS and has improved the
state of the art for open source centralized source management. I
wouldn't dare call it best of class, but I would use it for any open
source project because it (1) has a lower barrier of entry across
platforms and (2) works in ways that people expect it to. I'm less
convinced that I'd use it for professional software development after
my experience with Perforce at my current job. Perforce is an
absolutely amazing piece of software that gives many of the supposed
benefits of distributed development platforms (lightweight branches,
patch cherry picking), and with p4proxy, you get better distributed
development (although *not* apparently disconnected distributed
development).

There's so many different distributed systems right now that work
differently from each other and have forked because of differences in
opinion on how the programs should work that it's nearly impossible to
choose one reliably. Many of them suffer from an extreme anti-Windows
bias and very few of them (if any!) have GUI support for visualizing
changes over time. I personally find disconnected distributed version
control systems to be very fragile in that entire branches can go away
because a middle version is purposefully or accidentally deleted.
People say that distributed systems have cheap branching, but I find
that very hard to believe, since (at least in the ones that I've
tried, and I have a hard time imagining how others would differ) the
branches are physical copies in a different location. That's cheap for
the making, yes, but your total storage cost goes up (since none of
the advantages of having a single repository can be found) and it then
becomes possible to *lose* branches from your repository (cf fragility
above).

There's a lot of things to like about the *ideas* of DDSCM, but in the
real world, I find that I'm rarely disconnected from the 'net long
enough to care about the fact that I'm using a centralised management
system.

So no, not a troll. Well informed using shorthands that should have
been pretty easy to determine if you weren't blinkered by the
proponents of DDSCM in the first place.

-austin