Overview White Paper View Source

DVS is a new, advanced version control system that provides better support for concurrent software development of large, long-running projects. It provides complete backward compatibility with CVS repositories, and developers can even use DVS and CVS concurrently on the same repository.

DVS' primary addition to CVS is versions for directories. This allows files and directories to be moved, renamed, or restored without any loss of version history information. CVS has no mechanism for this; in CVS, files and directories can only be moved by a repository administrator, by restructuring the repository or by copying metadata. However, this causes some of the history of the software configuration to be lost.

The DVS version model differs from those of other modern version control systems such as ClearCase, Sourcesafe, Perforce, and Subversion. DVS allows a subsystem of a project to build on an arbitrary version of another subsystem; thus, the development version of one subsystem can depend on a stable version of another. This supports concurrent development of different software subsystems better than other models.

Because CVS is so widely used, portability is also of interest to developers. DVS is written in Java, so any platform that supports Java and CVS can support DVS as well. Combined with DVS' backwards compatibility with CVS, this enables easy migration from CVS-based development to DVS. We plan to make DVS freely available.