Fog Creek Software
Discussion Board




CVS vs. RCS?

Does anyone know the significant differences between the RCS and CVS based revision control systems?

Before I jump into one or the other, I'd like to hear.  Multi-platform (DOS, Win32, Linux) is useful.  Yes, I know, but the embedded systems boys still use DOS, and our DOS development box has a full network stack, so it can play with the big boys, at least in the server department.

Many thanks ...

Woodrow Stool
Wednesday, August 07, 2002

CVS supports remote operation.

RCS relies on filesystem access.

CVS uses a modify-update-checkin cycle.

RCS uses exclusive locking, a checkout-modify-checkin cycle.

It doesn't make much sense to even consider RCS these days when network access of source repositories is a must.  I wouldn't even use RCS for a local-machine repository, since if I ever do need network access I can just migrate the CVS repository to a server and be done with it.

Of course, there are better choices than CVS out there for source code control like Perforce...

Chris Hanson
Thursday, August 08, 2002

I find CVS's interface completely sufficient, and perforce's UI complex and confusing and ugly.. but thats just my humble opinion :)

Michael H. Pryor
Thursday, August 08, 2002

Isn't CVS built on top of RCS? From the man page:

$ man cvs

CVS(1)                                                    CVS(1)

NAME
      cvs - Concurrent Versions System

SYNOPSIS
      cvs [ cvs_options ]
              cvs_command [ command_options ] [ command_args ]

DESCRIPTION
      cvs  is  a front end to the rcs(1) revision control system

Matthew Lock
Thursday, August 08, 2002

I can think of no rational reason to use RCS over CVS.  CVS extends RCS considerably in very useful ways.

As for CVS being "complete," well, I'm surprised anyone would think so.  Here are some serious CVS warts:

1)  You can't rename a file without losing its history.
2)  You can't move or rename a directory without losing the history of all of its contents.
3)  You can't version symbolic links.
4)  You can't version permissions.
5)  Working with branches requires manually tagging every branch point, and referencing them manually with every merge operation.

Other than that, CVS is pretty good.

Robert Anderson
Thursday, August 08, 2002

*  Recent Topics

*  Fog Creek Home