----- Original Message -----
Sent: Tuesday, July 31, 2001 11:54
Subject: Comparing CVS and SourceSafe
(was RE: query)
> -----Original Message-----
From: address@hidden [mailto:address@hidden]
> was wondering if someone who has experience can guide me in
> 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
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
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
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
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
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
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
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 at garmin.com