This area is an archive and is no longer actively maintained. Information found on this page is likely to be extremely out of date and therefore highly inaccurate. We recommend the Ximbiot - CVS Wiki for up-to-date information about CVS and its associtated tools.

If you do find anything useful on this page that is not yet in the Ximbiot - CVS Wiki and you have the time, please add it!

Xdelta

Xdelta is a delta generator. That is, given two files it can produce a third file (often shorter), called a delta, which describes the differences between them.


It can also apply deltas, that is given the original file and a delta it can produce the second file. The delta algorithm is faster than GNU diff for text files and works well on binary files too. Xdelta also includes advanced features designed for use by version control systems such as CVS or PRCS. The exact form of these features changed pretty dramatically between Xdelta 0.x and Xdelta 1.x, so consult the Xdelta documentation if this interests you.

Development of Xdelta

No one has yet integrated Xdelta into CVS, but doing so would provide improvements in handling binary files, particularly with respect to disk and/or bandwidth usage. The rest of this section is aimed at developers who may be interested in working on this.

The first and easiest way to use Xdelta would be in the remote protocol, to replace the "Rcs-diff" response. What makes this particularly easy is that there are no hairy compatibility issues; CVS's repository and working directory formats would be unchanged.

The second way would be to replace GNU diff in generating the individual deltas in RCS files. This would be relatively easy, and could reduce the disk space required for the CVS repository. Note that this would not entail using the archival features of Xdelta. One would want make this an option, so that people could choose the traditional CVS repository format if desired.

The final way would be to use the archival features of Xdelta to replace RCS files. This would be a bigger project, although it depends of course on how closely the design resembled RCS files. The main problem that this is trying to solve is to speed up access to the tip of a branch.

Standardizing Binary Deltas

The GDIFF (generic difference) proposal to the W3C would standardize a file format for describing differences between two files (similar to the Xdelta format).

Items for Xdelta 0.22

There was an apparent bug in Xdelta 0.22, whereby either the delta generation or the delta application seems to corrupt the data. However, the Xdelta maintainer reports never being able to reproduce this, and Xdelta 0.22 is fairly old relative to the latest downloads. So this should be considered unconfirmed.


Where to Get Xdelta:

  • For additional choices see the Xdelta page from Josh Macdonald, the author.

Mailing Lists and Newsgroups:

  • There is a mailing list for Xdelta announcements and discussion; to subscribe send a message to majordomo@XCF.Berkeley.EDU whose body is "subscribe xdelta-list".
  • One newsgroup for Xdelta (and other version control tools) is comp.software.config-mgmt.

Derek Price, CVS developer and technical editor of Essential CVS (Essentials line from O'Reilly Press) , and others offer consulting services and training through Ximbiot.