By offering a choice of version control systems, developers who want or need
certain features, can choose which one suits them or their project the best.

In addition, there are quite a few projects that should be Gentoo hosted, but
are hosted elsewhere due to the fact that Subversion is not currently offered.
Examples include the app-vim/gentoo-syntax package ([1]), and
app-shells/gentoo-bashcomp ([2]).

Subversion has many advantages over CVS, including changesets, directory
versioning, atomic commits, versioned metadata, and more efficient branching
and tagging ([3]). Despite these advantages, many developers feel that
Subversion is not yet ready for the main tree due to scaling issues.

The following steps describe, in detail, the process of setting up the
Subversion svnserve daemon (over SSH) and creating new repositories.

One repository should be created per project. Reasons for this include easier
control over who has access, performance (checking out one big repository
takes many times longer), ease-of-use (branching and merging are more difficult
with one big repository), and meaningful revision numbers (since Subversion
uses repository-global revision numbers, revision numbers for project A will
increase on every commit even if no changes are made to project A).

For preexisting CVS repositories, instructions on converting ([4]) are
already available in addition to the cvs2svn documentation itself ([5]).