DVCS, or a New Way to Use Version Control Systems on FreeBSD?
Ollivier Robert
FreeBSD, like many open source projects, uses CVS as its main version control
system (VCS), which an extended history of all modifications made since the
beginning of the project in 1993. CVS is a cornerstone of FreeBSD in two ways:
not only does it record the history of the project, but it is a fundamental
tool for the FreeBSD core team and developers.
CVS is built around a concept of centralized repository, which has a number of
limitations and suffers from many flaws. Although FreeBSD is also using
Perforce for specific projects, having two VCS is cumbersome.
Recently, a new type of VCS has arisen: Distributed VCS, one of the first being
BK from BitMover, Inc. Better known from the controversy it generated when
Linus Torvalds started using it, it has nonetheless changed the way some people
develop software.
This paper explores the area of distributed VCS. We analyse two of them Arch
(in its Bazaar incarnation) and Mercurial. I'll try to show how such a tool
could help further FreeBSD development, both as a tool and as a new development
process. Migrating VCS is a tedious task and there are several issues that we
must look at before undertaking this project.
About the author
Ollivier Robert has been a FreeBSD developer for more than 10 years now and
playing with 386BSD and various UNIX before. He has worked on several areas in
FreeBSD including documentation, VFS layer and ports. He is now maintaining
the ntp utilities. VCS has been a special interest of his for a long time and
recent tools make him think it may be time to switch over.
|