Well, I have an actual list of advantages that git may offer:

- better patch/diff handling capabilities. CVS is very crappy at that.
As soon as you are testing stuff locally, every update request will produce
conflicts.   git has very good merging capabilities, comparatively.

- possibility to have commits that make sense, and are not just one file at
a time.

- cheap tags.  Makes it trivial to tag a release, or hey, even to tag the
tree a release is made off. Sometimes, I would actually enjoy knowing what
diffs a binary snapshot contains.

- being able to prepare logical commits. git is much better than cvs at
handling patch sets.

- bisecting for bugs.

- moving files sucks with cvs.

- being able to prepare diffs with new directories. CVS currently really sucks
at that.  You more or less need to have a local repository copy (which is
possible thru various tools), because otherwise, adding a directory will commit
to the distant repository.


As far as cvs is concerned, by far, the most annoying nit I have is with
bad merges.... if I had a nickel for every hour I spent cleaning up merge
disasters in a tree... I would be rich.

I've looked at GNU cvs code and it's not pretty (it does very weird things
on import branches). Pity OpenCVS is not really going anywhere (don't look at
me to advance it, I have already too many projects going on, and I don't fancy
writing diff/sdiff primitives in C).

Reply via email to