Ethan Chan <[EMAIL PROTECTED]> writes:

> Hi,
>     I understand that CVS uses diff to store the differences from one
> version to another (to save space).  My question is what happens if, say I
> have 500 versions since a file was first added to the repository.  To
> retrieve my latest version, CVS has to patch 500 times (appending all the
> changes from the beginning) until the most recent version?  If so, that's a
> big hit on performance, not to mention time wasted for the convenience of
> space saved?

cvs uses RCS (Revision Control System) as its internal version control
format. RCS keeps the latest version of a file at the 'top' and reverse
deltas to go back to previous versions. Branches are held as forward
deltas from the head version from which it is taken. So, in the case of
version 1.500 (if that is the top-of-tree), there is only one version to
checkout while version 1.499 would need to apply one reverse delta to
this data.

The SCCS file format is the one that uses the mechanism you seem to
believe is a big hit on performance. However, this has not stopped folks
from using that format (I understand that BitKeeper uses an SCCS data
store for versions). I suspect you could find papers that compare the
relative merits of the two approaches if you look for them.

For what it may be worth, Walter F. Tichy wrote RCS and published his
work here:

  Tichy, W. F. Design, implementation, and evaluation of a Revision
  Control System. In Proceedings, 6th International Conference on
  Software Engineering, September 13-16, 1982.

RCS is the basic format used for a number of SCM systems that have grown
up in the twenty-one years since it first appeared.

A number of papers exist that compare and contrast the strengths and
weaknesses of RCS.

I know that Walter F. Tichy wrote RCE (the revision control engine) as
the follow-on for RCS. He appears to have a link to the commercial
product on his home page: http://www.ipd.uka.de/~tichy/ and I am sure he
has some comparisons on RCS with RCE and other ways to store delta
information somewhere out there.

Of course, as RCE is not GPL or OpenSource, do not expect cvs to make
use of it any time in the near future.

There are other projects out there that have compared themselves against
RCS. Doing a literature search you should find papers on various other
SCM and version control systems.

        Enjoy!
        -- Mark


_______________________________________________
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs

Reply via email to