[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Comparing CVS and SourceSafe (was RE: query)

From: Beachey, Kendric
Subject: Comparing CVS and SourceSafe (was RE: query)
Date: Tue, 31 Jul 2001 12:54:10 -0500

> -----Original Message-----
> From: address@hidden [mailto:address@hidden]
> I
> was wondering if someone who has experience can guide me in finding
> articles about CVS and VSS. Is there any article or does any body
> know here of the major differences between the two and also the modes
> of use between them.

I'm assuming that by VSS you mean Visual Source Safe.  There are some important differences between the two...

1. File Locking (or lack of it)

In SourceSafe, when you check out a file, you are the only one who can modify it.  If someone else wants to work with that file, they have to wait until you finish and check the file back in.

In CVS, checking out a file just gives you a copy of it.  The central repository goes on with life as though nothing happened.  So anyone else is also free to grab a copy and edit it to their heart's content.  This will sound scary if file-locking source control is all you have ever known, but once you see CVS in action you will feel better about it.  Whenever anyone wants to put their changed version of a file into the repository, CVS makes sure there it doesn't conflict with the latest version in the repository, which may have some other people's changes in it already.  If there is a conflict, it won't accept your file, and it will show you where the conflict is.  It is then up to you to reconcile the conflict and try again.

In an open source project where programmers are scattered all over the globe, this is great, because waiting for someone else to check a file back in would seriously impede progress.  But in a more controlled environment, like in a proprietary shop, it's not as important.  But in a controlled shop, you will rarely find two people assigned to work on the same part of the same file at the same time, so conflicts rarely happen.

2. GUI

SourceSafe has a command-line mode, but it's not immediately obvious.  Most people know SourceSafe through its GUI, which is fairly reasonable, but a bit dated (no major updates since 1996 if I recall correctly).  If you don't like the way the GUI works, well, too bad.

CVS in its purest form is command-line only, but many people have written GUI front-ends for it.  So you can hack with the command line like a power user, or you can take your choice among many different GUI approaches, one of which is probably close to your thinking style.

3. Database format

SourceSafe uses a proprietary, undocumented database format to store the repository, and provides a couple of rudimentary tools you can use to try and fix the database if something goes wrong.

CVS does everything in plain text, so if you need to fix it, you can tell how (maybe with a little lookup in the documentation, which reminds me...).

4. Documentation

SourceSafe has (I think?) some printed documentation that comes with it, but I haven't ever seen it so I can't comment on it.  It does have an on-line help file that will tell you some of the things you would like to know (finding out about the command-line options, for example, isn't very easy).

CVS comes bundled with a very comprehensive reference guide, and there is an excellent user's guide that you can either buy at the bookstore or browse on the web.  (Technically, only part of the book is on the web, but it's the part that matters most for someone wishing to learn about CVS.)

The only other point of note I can think of right now is that SourceSafe and Novell Netware 4.x hate each other's guts.  We got file locking timeouts all the time at the shop where I used SourceSafe.

I'd be interested to see anyone else's observations...

Kendric Beachey
kendric.beachey at

reply via email to

[Prev in Thread] Current Thread [Next in Thread]