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 7, 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 8, 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 8, 2002

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

$ man cvs

CVS(1)                                                    CVS(1)

      cvs - Concurrent Versions System

      cvs [ cvs_options ]
              cvs_command [ command_options ] [ command_args ]

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

Matthew Lock
Thursday, August 8, 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 8, 2002

*  Recent Topics

*  Fog Creek Home