[En-Nut-Discussion] Moving to Subversion

Marti Raudsepp marti at juffo.org
Fri Feb 27 18:05:39 CET 2009


Sorry for not being able to respond earlier.

On Sun, Dec 21, 2008 at 1:58 PM, Harald Kipp <harald.kipp at egnite.de> wrote:
> As suggested by Thiago and others, we may finally take the chance and
> move the resulting CVS HEAD 4.9 to a Subversion repository.

May I suggest considering distributed version control systems before
making that decision? Lots of open source projects are already
migrating from Subversion to distributed systems; as far as I can tell
it's only a matter of time when SVN meets the same fate as CVS.

If you're not yet familiar with distributed VCSes, here are main advantages:
* Branching and merging is much very natural because it's the normal
mode of operation. Every time you clone, you get a new branch. Every
time you want to get the changes from a diverging repository, you
merge.
* Revisions can be commited by anyone and later merged into the main
repository by trusted users: The version control system is useful for
those without commit access.
* In general, DVCSes put less constraints on workflows. You can use
them like a centralized systems, but you won't want to, once you get
to understand them.
* Maintaining, publishing and merging back experimental or third-party
repositories is much easier. This is especially useful for maintaining
private changes on top of the official Nut/OS source tree.
* Even if written in Python, distributed systems are usually
significantly faster than Subversion. :)
* No central point of failure.
* Offline operation. You can make multiple commits locally before
pushing them up to the public server.
* (At least in Mercurial), changesets can be e-mailed around like
patches, but they retain their metadata (commiter name, commit time
and base revision) and always apply cleanly.

These advantages may not seem significant at first in face of SVN's
popularity, but they enable lots of flexibility. Many OSS projects
have considered the switch worthwhile. For more information, Linus's
Google Talk about git touches all the aspects of why distribution
matters: http://www.youtube.com/watch?v=4XpnKHJAok8

There are 3 popular DVCSes that are worth considering: git, Mercurial
and Bazaar. All of them provide similar functionality, although each
has its advantages and drawbacks. (I myself prefer Mercurial)

Marti


More information about the En-Nut-Discussion mailing list