Thu, 15 Dec 2005
I never thought anyone would still seriously advocate CVS over
anything else these days, but I
was wrong.
Bernhard:
- Ever heard of atomic commits? You modify three files, commit.
Turns out that in the time between you starting to edit stuff and you
committing, someone else changed some stuff, and your commit doesn't
apply somehow. The first file is committed, the second breaks, and the
third isn't committed. Congratulations, you just broke the build, and
you'll have to manually fix it. When editing three files, that's
manageable; when your commit is (say) about 15 files or so, it's not
really as manageable anymore. CVS doesn't have atomic commits.
- About it being rock solid, I only say
Hah
. I've seen way too
many cvs pserver bugs out there—and that's still the only
possible way to go if you want anonymous CVS access.
- How about the fact that upstream CVS development is rather extremely
dead, after most of their developers started to develop
subversion because the CVS code is so extremely horrible to
maintain?
- Moving files around isn't just a nice thing to have; it's an
extremely important feature. Far too often have I seen people afraid to
reorganize their code because that would lose history on the files. If
you can't move files, you can hardly ever reorganize code, which means
that you let your version control system dictate how you should
work—which is bad, very bad.
- And finally, being able to tell someone that
this is fixed in
r132
rather than having to say this is fixed in r1.74 of foo/bar,
r1.34 of foo/baz, and r1.82 of foo/quux
is very helpful.
Your suggestion about dates (there's normally at least a quarter of
an hour between commits
) only suggests that you haven't seen many
large projects in the heat of code changes. And even if that weren't
true, the fact that it normally
isn't a problem makes it even
more of a problem on the occasions that it, in fact, does take
less than a few seconds between my commit and yours
Really. Have you tried comparing CVS to anything else, on a serious
project?
There should really be a way for all those version control systems to
talk to eachother. After all, they all have one thing in common: they're
all ways to exchange patches. Surely there must be some way to device a
protocol or something so that those patches can be easily sent from one
version control system to the other and back again?
/en/retorts
PermaLink