Comparing MKS and CVS and some questions

Comparing MKS and CVS and some questions

Post by c771 » Mon, 24 Nov 2003 11:23:02

Hi there,

Right now we are a shop running MKS source Integrity running on
Windows NT. I am exploring the possibility of using CVS-Eclipse as an
alternative version management solution. I have read most of the docs
on CVS / eclipse and its seem to be good. What are other people's
opinion on this ?

Three questions ?

1) One of my concerns is that MKS have more project management add ons
- for example, in MKS, diffrent projects can share the same file
archive and I can make this file a "shared member" to the projects.
Different projects can use different revisions of this file to be the
"member revision". Can I do this in CVS?

2) MKS supports"promote", "demote" and "frozen" to denote projects /
files in different states - is there an equivalent work around in CVS
(other then to change permissions on the directories ??)

3) How do I set up different privilleges (for checking in, checking
out, freeze, etc.) for different clients in a CVS system ? (are
privilleges only set for directories ??)

On a side note, one thing I like about Eclipse is that it is developed
as an IDE, does anyone know if they are doing a pluggin to support ADA

Thanks in Advance for any help or comments ...

Comparing MKS and CVS and some questions

Post by Zeni » Wed, 03 Dec 2003 03:14:41

Yes, but it's a bit more manual. You can overlay one module/subdir
inside another via the CVSROOT/modules file (checkout "CVSROOT" as if it
was any other module, check files in to "activate" them), but doing
"member revisions" adds a bit. The most direct way would be to branch
the shared tree for each project.

One gotcha is that tags (both static and branch) are per-file, not per
"module" or such. This means if you share a tree between two projects,
you'll need to use tags like "proj_a-BUILD_123" instead of just
"BUILD_123", or else tags and branch names for for proj_a will clash
with proj_b. As most of the better SCM tools are, CVS is more of a
toolkit then a turnkey system, so issues like this aren't much of a
problem in practice as it's just scripted to your liking. That said,
CVS is pretty bare bones (that's a feature), so if you want to get fancy
be prepared to be coding a bit (sh or Perl is best), but that does mean
of course you can make it do mostever what *you* want instead of being
forced to work exactly how the tool designers thought you should.

You can do pretty much anything as a hook via many of the files in
CVSROOT, in particular CVSROOT/commitinfo, but again it's more toolkit
then turnkey. -That said, it isn't that hard especially if you use Perl
which makes using simple DBM file databases very easy for this kind of

So far I've done most of this myself through CVSROOT hooks. Changing
directory permissions only restricts access until someone with access
actually commits something, at which point cvs resets the directory and
file permissions (personally I call that a bug, but I haven't had a
chance or care enough to fix it).

TortoiseCVS ( is "integrated" enough into the
Windows Explorer shell that it might as well be integrated into the IDE,
without the (IMHO, huge) drawback of forcing your SCM or IDE tools based
on which can talk with which. VSS is a fantastic example of why picking
SCM tools just because they fit into your IDE is a huge and most likely
costly mistake.