This is the mail archive of the cygwin-talk mailing list for the cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cvs vs. svn vs. git vs.... (was: Cygwin 1.7 release)


Corinna Vinschen wrote:

I still don't understand why everybody is moving away from CVS.

0. Far cleaner versioning scheme: just rXXXX, instead of CVS's x.y.z.q.omega.hairball mess. I guess this might annoy those who keep their repository versions in step with their public version numbering scheme, but I always found it a pain to renumber my CVS repo when there was a new major release. And keeping minor releases in step? Fuggeddaboudit.


1. svn rm really removes files, doesn't just hide them in the Attic. (It's still there, part of the older revisions, just not visible further down that branch.)

2. svn rmdir really removes a directory. You can later svn mkdir the same path, and it will not drag in the version history for the old files that used to be in that place. (Ditto svn mv when renaming a directory. Do that in CVS, and you can never use the directory name again!)

3. svn mv more closely approximates a real move. It's still an add and delete on the back end, but because both changes are part of the same revision, and revisions are atomic.

4. Atomic checkins. If CVS fails during a checkin, you get a partial checkin, usually requiring manual cleanup. With svn, it either completes successfully, or it rolls the whole checkin back out.

5. Far cleaner ssh tunneling support

6. Unix tools hide .svn subdir, but not CVS

7. svn is less likely to break "special" files: keyword substitution is disabled by default, binary files aren't special, it knows the cross-platform rules for newlines, it knows about file modes like "executable" on POSIX systems... You can arm-twist cvs into fixing a lot of these problems, but svn just does it right out of the box, and it tends not to break later.

Seems like other SCMs,
especially git, are just en vogue right now.

Last week I was wishing my OSS project were using git instead of svn.


Gna's repository server blew up again, losing several days -- weeks, initially, until they discovered a newer backup -- worth of repository data for the 1200+ projects they host. Those using git just re-pushed their local repository copy and were back in business. Those of us on the non-DVSCes lost any checkins made during the period between the backup and the crash.

Asked about his backup strategy years ago, Linus said he didn't make backups, because all the stuff he cared about was replicated on FTP, news, and mail servers all over the world. As far as software goes, that ignores the pain of losing the play-by-play checkin history.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]