Manure alert! On Tue, Jun 23, 2009 at 02:16:39PM +0200, Hannah Schroeter wrote: > Hi! > > On Mon, Jun 22, 2009 at 02:11:21PM -0500, Marco Peereboom wrote: > >What is wrong with CVS? And no I am not talking about the hypotheticals > >and some bugs that exist in the current code (that can also be easily > >worked around). > > - It's *slow* (once you've seen git's speed, both cvs and svn are snails > against it; hg and bzr might perhaps compare with it, though).
It isn't slow. I can check out a tree in a minute. Here is a nickel kid go buy yourself some real disks. > - How often you've seen people (devs with commit access) do development > without committing it because it wasn't ready for prime time, then > committing it in chunks that can't be grokked any more because they > have accumulated for months or even over a year? You can't have > off-site development branches in centralized version control systems. > You *can* with distributed ones. You can merge them *and keep history* > later somewhat easier than without having distributed vcs abilities. Oh I guess the cvsync tree I have on my laptop and all my development trees don't count. This is all uninteresting blabbing of someone who doesn't know how to use cvs. > > - Non-committers can keep track of their local modifications in a more > structured ways (because they can too have local inofficial branches) > with a distributed vcs. So submission of patches can be more structured. see previous. > > - Did I mention: most current dvcs are *fast*. And you can usually > mirror the repo (just as cvsync does, just you don't need an addon > tool for it). *yawn* > > - The history is still kept at a file level. While we see commit mails > in a changeset form, if I want to look at what has been changed, > I have to check per file (first cvs log, then cvs diff, or the > equivalent thereof on the web). Even with svn I can do so with *one* > svn log, then svn diff for the *whole* commit. With git I can do so > with *one* git log -p for the whole commit (no further diff > operation). Sure you found a nice feature but hardly killer or worth any downtime and relearning of some other retarded system that is full of unknown bugs. > > - Disconnected operation. With cvs I can do nearly nothing (related to > version control, that is) offline. (Devs working on the plane, > anyone?) With svn I can just check the status and the diff against > the *current* pristine version. With git, for example, I can > inspect the *whole* history up to now, and I can create new structured > history from now. The only thing I can't do offline is get new > history from others (upstream or other devs or other users) or > export my new history (to an official repository or "peer-to-peer" to > other users/devs). I do this all the time. You have no idea about cvs. > > - Sometimes even little features like git stash (put away uncommitted > stuff for a moment in order to do something else, but ready to be > retrieved again) or git add -i (prepare to only *selectively* commit > changes) come handy. I would never remember that. Not useful. > > - Oh, when I notice a mistake immediately after the fact, I can (a)mend > it with git up to the moment I exported my history! Less of "oops I > committed this port to the wrong place". Of course without having > to completely *manually* hacking the repository tree. Lear to commit with a proper procedure and you don't have to rely on hacks. > > - For versioning local things (like /etc), I don't need to dedicate a > completely different place for the repository. One .git directory > is good enough for everything (where cvs needs a CVS/ directory for > every directory in the working tree *and* a separate repository > directory hierarchy). Same gripe about svn, btw (a .svn in every > directory in the working directory, even more bloated than cvs, > and a separate repository tree, also quite fat). Boooooooring > > >I have used just about all versioning systems, including ones that have > >the price tag of islands in the pacific, and ultimately they all suck in > >their special ways. CVS works "well-enough". > > I beg to differ. I was somewhat relieved when we switched from cvs to > svn at work (for our work projects). svn does suck, too, of course. For > example, non-first-class tags and branches, big overhead in its working > copies, and it's slow too, but at least it has real versioning across > directory *trees*, so operations like ... log and ... diff actually make > sense, you can actually look at the history in a tree/changeset > granularity. Now if it wouldn't shit itself all the time... > > Nowadays I still scorn svn here. But at the same time, I dislike cvs > more. cvs up -APd on /usr/src, or /usr/ports is just *so slow* even > with a *local* (cvsync) mirror. Even with async,noatime mounts and > export CVSREADONLYFS=1. cvs commit is slow (and non-atomic!). Coordinate your commits; problem solved. These are the things people point at all the time but I never see them as an issue IN THE REAL WORLD. > > Nowadays I use git-svn to make working with the company's svn service a > bit more bearable. And I profit of the ability to keep local branches, > to exporting new history at a time when *I* see fit, etc. Good for you! > > Kind regards, Thanks for your opinion, I now like git as much as I did before wasting my time answering this. > > Hannah.