Skip to content

December 29, 2011

4

Update FreeBSD source tree using subversion svn

In a previous post I described the process for updating the FreeBSD source tree using csup and upgrading from FreeBSD release to the stable branch. These days subversion svn has started to replace cvs as the version control system for the FreeBSD source tree. Here I am going to note the commands you would use to updating the FreeBSD source tree using subversion instead of csup.

First you will need subversion installed on the system, to do this you can install from the ports or packages.

From ports:

# cd /usr/ports/devel/subversion
# make install

From package:

# pkg_add -r subversion

You can just accept the default port configuration options. Once installed you can then update the FreeBSD source tree using this command, this will update the source tree to FreeBSD 9-STABLE, the same as the RELENG_9 tag used in csup.

# svn co svn://svn.freebsd.org/base/stable/9 /usr/src

Other examples, to update to the latest HEAD.

# svn co svn://svn.freebsd.org/base/head /usr/src

Or even get the source for an old release.

# svn co svn://svn.freebsd.org/base/release/7.4.0 /usr/src

To find paths to other repositories you can checkout see the FreeBSD viewvc pages, here http://svnweb.freebsd.org/base/.

Once the source tree is checked out with subversion the path and options used from the check out is stored in the new /usr/src/.svn directory. Thanks to this all it takes to update the FreeBSD source tree in the future is this command.

# svn up /usr/src

This will update the source to the latest revision and, of course, only copy the files that are new or have changed. If you need to find out the revision of the source you currently have you can use this command, (there are other ways to get the revision number also).

# svn info /usr/src
Path: .
Working Copy Root Path: /usr/src
URL: svn://svn.freebsd.org/base/stable/9
Repository Root: svn://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 228954
Node Kind: directory
Schedule: normal
Last Changed Author: cperciva
Last Changed Rev: 228843
Last Changed Date: 2011-12-23 15:00:37 +0000 (Fri, 23 Dec 2011)

For details on how the build the source and install the new userland and kernel, see this previous post starting with the mergemaster command. http://www.mebsd.com/freebsd-security-hardening/freebsd-8-release-to-stable.html

Please share your experiences!



  • http://www.dannosite.com/ danstermeister

    Novice FreeBSD user here- I used this as the answer to why a ports installation of VirtualBox was going nowhere. Thanks!

  • Pingback: ViewVC Helps CVS and SVN Go GUI | Wazi

  • ski

    Thank you, your article is ver usefull!

  • http://ekd123.org/ Mike Manilone

    Thanks for the useful & helpful info.