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