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!

DAV (distributed authoring and versioning)

DAV (distributed authoring and versioning)

The Internet Engineering Task Force's Distributed Authoring and Versioning (DAV or WEBDAV) protocol is intended to provide a standard protocol for uploading files to a server, with various advantages over something like FTP. The same working group also has various other draft protocols in the works, for example the Versioning Extensions.

There are a couple of ways that CVS and DAV could work together, and no doubt various variations and permutations of these would be possible too.

CVS client and DAV server

Here, CVS uses DAV as the back-end storage for versioned information; see RCS_* interface for a rough idea of what the API might be between the existing CVS code and the new DAV code. This would let one use all the existing CVS clients with a DAV server (the CVS client would speak the CVS protocol to the CVS server, which would then speak DAV to the actual repository). This would rely on the Versioning Extensions to DAV, which are still being worked on (you can participate in that work, if you so desire, just be aware that any drafts are more subject to change than the basic RFC2518 DAV functionality). Presumably this would be a subset of CVS functionality, although see above about how the details are still being worked on. This is the scenario discussed in the DAV FAQ at webdav.org.

DAV client and CVS server

Here, DAV would be an alternate front-end interface to the existing CVS server. So a DAV client such as Microsoft Office 2000 would talk to the CVS-specific mod_dav equivalent, which would then talk the CVS protocol to the CVS server (or access the CVS repository directly, or whatever, that is a detail). Or in other words, this is the same idea as "More convenient uploads" on the ideas page. This should presumably be doable with DAV clients which implement RFC2518 only, not the Versioning Extensions, which may broaden its appeal and make it easier to start working now.

The above scenarios compared

Both scenarios accomplish roughly the same thing, in the sense that the goal is to have DAV-native applications like Microsoft Office 2000, existing alongside CVS applications like the CVS command line, jCVS, MacCVSClient, &c. Both are potentially worth pursuing.

DAV for publishing pages to a web server

This is less ambitious than the above, but if web hosting companies decide to implement DAV (RFC2518 server only, no versioning extensions needed) as an alternative to FTP or other mechanisms for uploading, then having CVS publish files via DAV might be another way to accomplish what CVSviaFTP or the other Keeping a checked out copy mechanisms do.

For more information

The webdav.org site contains a variety of DAV resources.

The WEBDAV site at uci.edu focuses on the various working groups and the standardization process.

[Cyclic Home]

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.