ivoras’ FreeBSD blog

June 1, 2008

FreeBSD on Subversion!

Filed under: FreeBSD — ivoras @ 11:12 am

The day has finally come – FreeBSD is using Subversion instead of CVS for the base source tree! Congratulations to everyone involved, especially Peter Wemm :)

FreeBSD’s source CVS is one of the oldest and biggest in existence; it’s approximately 12 years old and has apparently had something like 180,000 commits over the years, or on average slightly more than 41 commits daily. A checkout of RELENG_7 branch holds more than 42,000 files (in 482 MB as du sees it).

This move was discussed extensively during the DevSummit at BSDCan 2008; there have been many issues with CVS over the years, most of which are minor enough to be overlooked, but some of which are just nasty (the inability of CVS to move/rename files, bad handling of branching in the event of constant new development and additions to the directory tree, non-atomic commits) and have frequently required manual interventions in the CVS repository (“repocopy” is one of the relatively frequently requested operations to the CVS admins).

Old infrastructure, of which cvsup / csup is probably the most important part, will continue to work as code will continually be mirrored from SVN to CVS, until suitable replacements or upgrades to the above tools are created. This is also the reason the name “CVS” will be present for some time in the system infrastructure, until all of it is updated. Ports will continue to use CVS for the foreseeable future.

To make a source base this large work efficiently on SVN, version 1.5 had to be used, since it creates its database files in a hash-tree of directories on the file system instead of one huge directory with all the files in it.

Also see the official announcement of Subversion and Peter Wemm’s notes about Subversion (very useful to developers).

7 Comments

  1. Weird, I cvsupd the whole tree yesterday and my box reports 479M:

    %du -h -d 0 /usr/src/
    479M /usr/src/

    Anyway, thanks for updating the blog with fresh news :)

    Comment by taromaru — June 1, 2008 @ 6:19 pm

  2. The size of the source tree will depend on the time of checkout, disk block size, the phase of the moon and whether you have any local patches or not. It’s not exactly written into stone. :)

    Comment by ivoras — June 1, 2008 @ 6:47 pm

  3. [...] ???http://www.freebsd.org/news/newsflash.html#event20080603:01 ???http://blogs.freebsdish.org/ivoras/2008/06/01/freebsd-on-subversion/ [...]

    Pingback by [blf@Logging /~]: » [CVS] FreeBSD begins switch to Subversion — June 4, 2008 @ 4:43 am

  4. [...] FreeBSD moves to Subversion Filed under: FreeBSD ? ivoras @ 11:12 am The day has finally come ? FreeBSD is using Subversion instead of CVS for the base source tree! Congratulations to everyone involved, especially Peter Wemm :) FreeBSD?s source CVS is one of the oldest and biggest in existence; it?s approximately 12 years old and has apparently had something like 180,000 commits over the years, or on average slightly more than 41 commits daily. A checkout of RELENG_7 branch holds more than 42,000 files (in 482 MB as du sees it). This move was discussed extensively during the DevSummit at BSDCan 2008; there have been many issues with CVS over the years, most of which are minor enough to be overlooked, but some of which are just nasty (the inability of CVS to move/rename files, bad handling of branching in the event of constant new development and additions to the directory tree, non-atomic commits) and have frequently required manual interventions in the CVS repository (?repocopy? is one of the relatively frequently requested operations to the CVS admins). Old infrastructure, of which cvsup / csup is probably the most important part, will continue to work as code will continually be mirrored from SVN to CVS, until suitable replacements or upgrades to the above tools are created. This is also the reason the name ?CVS? will be present for some time in the system infrastructure, until all of it is updated. Ports will continue to use CVS for the foreseeable future. To make a source base this large work efficiently on SVN, version 1.5 had to be used, since it creates its database files in a hash-tree of directories on the file system instead of one huge directory with all the files in it. http://blogs.freebsdish.org/ivoras/2…on-subversion/ [...]

    Pingback by FreeBSD moves to Subversion | keyongtech — January 18, 2009 @ 4:50 pm

  5. Congratulations…! As we know that FreeBSD

    Comment by IT Training — February 19, 2009 @ 5:41 am

  6. [...] it, good!). My entire post just poofed when I published it, just a not-so-nice empty post. So, hereFreeBSD on Subversion! ivoras' FreeBSD blogThe day has finally come FreeBSD is using Subversion instead of CVS for the base source tree! … [...]

    Pingback by cvs tree — April 4, 2010 @ 9:55 pm

  7. FreeBSD IMO should not be the way it has been…

    Comment by Matt — March 4, 2011 @ 4:43 am

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress