Google Answers Logo
View Question
 
Q: Who invented CVS (Concurrent Versioning System) ( Answered 5 out of 5 stars,   1 Comment )
Question  
Subject: Who invented CVS (Concurrent Versioning System)
Category: Computers > Programming
Asked by: b_ray-ga
List Price: $10.00
Posted: 16 Jul 2003 08:11 PDT
Expires: 15 Aug 2003 08:11 PDT
Question ID: 231630
Who invented CVS (Concurrent Versioning System)?  Is there a published
standard?  Who should be referenced when using CVS (and not pertaining
to a specific CVS system) in a paper whose audience is not developers?
Answer  
Subject: Re: Who invented CVS (Concurrent Versioning System)
Answered By: maniac-ga on 16 Jul 2003 18:22 PDT
Rated:5 out of 5 stars
 
Hello B_Ray,

To answer your questions, I am referring to a recent copy of the CVS
Manual hosted at
  http://www.fnal.gov/docs/products/cvs/v1_11_1/cvs.html

Q1: Who invented CVS?
A: The original "CVS" was created as shell scripts by Dick Grune in
1986 and posted in the news group comp.sources.unix. For reference,
try
http://groups.google.com/groups?q=cvs+script+group:comp.sources.unix&hl=en&lr=&ie=UTF-8&selm=831%40uunet.UU.NET&rnum=1
which is one of the introductory messages for that group and lists cvs
as one of the items that was posted to the newsgroup. You may be able
to get this original source if you are interested - let me know if you
need this. As a side note, CVS was (and is) based on another
versioning system named RCS.

Please note that the current CVS source code contains none of the
original shell scripts. The CVS Manual indicates that Brian Berliner
and Jeff Polk were the main authors of the new version.

Q2: Is there a published standard?
A: I am not sure what you are referring to. If you want the format
used to store files and changes, The file of changes is in "RCS
Format", on a typical Unix system, try
  man 5 rcsfile
to see if you have a description of this format. If not, try a public
site such as
  http://www.die.net/doc/linux/man/man5/rcsfile.5.html
for the same information. There are some minor differences in the way
CVS uses that file format (vs how RCS uses the same file format), the
manual has the details (sections 4.4 and 5.5).

In addition to the RCS format files, a CVS repository has a few
administrative files. Those are described in the CVS Manual, check
appendix C.

If this does not answer your question - please make a clarification
request so I can provide a better answer.

Q3: Who should be referenced when using CVS?
A: Hmm. I assume you are thinking of saying something like...
  we are using CVS, by ___
If that is the case, I would use the people referenced in the CVS
Manual. Perhaps say it like
  we are using CVS, by Berliner and Polk
since they are referenced as the main developers of the current
version (unless you are using the scripts - then refer to Grune). That
would certainly give credit to the recognized authors.

For further information, I suggest a review of:
  http://www.cvshome.org/
  http://www.loria.fr/~molli/cvs-index.html
or perhaps even the source description. Check the information provided
to see current contributors and maintainers. As an alternative, a
search using phrases such as
  CVS Manual
  CVS shell scripts comp.sources.unix
and so on can provide additional material.

By the way, I use CVS on an almost daily basis and if you are
interested, I can make suggestions on how to use it for large projects
(our team has about 100 software developers).

I hope this answer meets your needs - if anything is unclear, don't
hesitate to ask for clarification.
  --Maniac

Request for Answer Clarification by b_ray-ga on 17 Jul 2003 07:50 PDT
It sounds like you are saying CVS is a front-end to RCS.

One RCS man page states under SEE ALSO:

       Walter  F.  Tichy,  RCS--A  System  for  Version  Control,
       Software--Practice   &   Experience  15,  7  (July  1985),
       637-654.

Would you say this is the true origin of the philosophy of CVS?

When I ask about "published standard" I am asking if CVS has been
approved by, ISO, IEC, ...

How can I prevent pointing to a URL to a manual or a specific version
of CVS while still stating CVS is a good thing, should be used, and
here is what it does?  If the paper is read at a later date, those
references may no longer be current.  What if CVS moves to Subversion
or another variation? How can I tell the reader I am basically talking
about the same thing? What do other developers and engineers call
this?  How can I translate what this into something understood by a
broader IT and business audience?

How do I say, use CVS type of Version Control over any other?  For
example, I can Track Changes in MS-Word, but I do not consider this
true Version Control.

Clarification of Answer by maniac-ga on 17 Jul 2003 18:28 PDT
Hello B_Ray,

I did not intend to mislead, but CVS is not currently a front end to
RCS. They do share file formats - easing the upgrade path from RCS to
CVS, but there are a number of capabilities in CVS that have no
equivalent in RCS. The original shell scripts were certainly a front
end to RCS, but the current code base has diverged in several
significant ways.

There is some overlap in the "CVS Philosophy" with RCS. For example:
 - basic operations (check out, check in, versions) are similar
 - format of difference files are almost identical
However, CVS was developed in part to support a different development
/ control methodology. For example, many developers can "check out" a
set of files. Others can make updates w/o requiring all the "checked
out" files to be updated. However, you cannot check in using CVS until
you have checked out the "latest version" or set up a branch to keep
your changes. For a large team, this kind of support is extremely
valuable and not available in RCS. In some of the papers I found, this
is described as the difference between "pessimistic" and "optimistic"
version control referring to RCS and CVS respectively.

About being standardized, I did a review of the online version of the
Single Unix Specification
  http://www.unix.org/single_unix_specification/
and noted that neither CVS nor RCS are included. However, an older
version control system SCCS is included in the specification under the
shell and utilities section.
  http://www.opengroup.org/onlinepubs/007904975/utilities/contents.html
I can't absolutely say there is no "official standard", but if there
is such a standard, it is hidden quite well and not referred to in
several locations.

Since you are talking about writing a paper, it may be helpful to use
a resource such as Citeseer as a guide. Using the paper you provided
as an example I pulled up
  http://citeseer.nj.nec.com/context/98978/0
which lists 142 papers that refer to that paper by Tichy. Many of
these papers refer to both CVS and RCS. Picking one of those that
appeared to cover both in an equal manner led me to
  http://citeseer.nj.nec.com/566791.html
and
http://citeseer.nj.nec.com/rd/89313789%2C566791%2C1%2C0.25%2CDownload/http%3AqSqqSqwww.isr.uci.eduqSq%7EandreqSqresearchqSqpapersqSqICSE2003-1.pdf

which refers to CVS[4] and points to a Usenix conference paper in 1990
which is accessible at
  http://citeseer.nj.nec.com/berliner90cvs.html
if you want to see the original paper.  This paper describes the
difference in philosophy, some implementation details, and refers to
other papers (but not on CVS directly).

To answer some of your other comments / questions about addressing a
more general audience, if I was writing something up, I would try to
keep it at a high level. Mention the product (CVS) by name and/or
acronym. Then describe some of the basic features (check in, check
out, multiple versions, efficient storage, ...) and move on. With
today's resources (e.g., Google) you can find the item by just knowing
its name instead of the address.

If they are unfamiliar with basic version control, you may need to
prepare some examples. For example, when I reviewed free / low cost
version control systems for development on Linux, I was greatly
impressed by the explanation of the effort used to import large
software items (e.g., Sun Unix source) and merge with local changes.
That particular capability may not be something you need, but there
are other examples that should serve as well.

About subversion (and similar items), I decided against deploying them
in our facility due to the level of product maturity. Yes, they have
additional features, but we opted for a low risk and mature product
that has wide understanding by developers. At some time, subversion
may get to the same level of maturity and support - but I expect to
see CVS in use for quite some time.

  --Maniac
b_ray-ga rated this answer:5 out of 5 stars
Great answer!  You went above and beyond. Thanks for your help.

Comments  
Subject: Re: Who invented CVS (Concurrent Versioning System)
From: jeanluis-ga on 16 Jul 2003 17:31 PDT
 
CVS is a tool released under the GNU license... As such it is hard to
give credit to a single person for CVS as a whole. However, typically
in such cases you can usually find a single person who is in control
of the whole project, but in the case of CVS I could not really find a
reference to any single primary point of contact. As such I am not
100% sure about the best way to go about doing this, but I would
probably refer to the author as the "CVS contributors" or something
like that. Then you could point your audience to the CVS Home page at:
http://www.cvshome.org/
From there they can find all kinds of information on CVS...
Good luck,
--jld

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy