
The development of the WordPress software is done using a version control system called Subversion. Subversion allows the developers to track changes (called revisions) across time. Since WordPress is open-source, you can track its development, and even have access to that code. Subversion allows WordPress to have multiple write-access developers (usually called committers) and allow public read-only access to the development code.
This is the beginning of a multi-part mini-series on Subversion. The first part will be an introduction to Subversion, the second part will be about accessing the WordPress Subversion repositories and the final part will be about contributing code to the WordPress project.
Projects hosted on a Subversion server are in a repository. A repository contains a specific directory structure, trunk, branches and tags The trunk directory is used for the development of the very latest, bleeding-edge version. The branches directory is for the development of the current (usually stable) version series (in nested directories), while still keeping the bleeding-edge version development in trunk. The tags directory is used to store stable releases of the software. No development is done in this directory, code is simply copied over from either the trunk or a branch into a directory with the version of the release.
When a developer with write-access to the Subversion repository submits a revision to it, it’s called a commit. Subversion keeps a revision number for each repository, which increments each time something is committed to the repository.
When you are downloading the code from a repository, you are checking out the code.
The short form of Subversion is SVN. More on SVN in the coming weeks.





Jeremy Steele
April 23, 2009 12:47 am
I never used to use a revision control – but about 6 months ago I started using SVN and never looked back. It makes it insanely easy to track release versions of code with tags, and if I make a huge mistake all it takes is a simple command to make everything good again.
GIT is pretty much the only other “good” option – but it seems quite overkill for anything I work on. As far as CVS goes – it seems kinda dead nowadays.
Tris Hussey
April 23, 2009 8:57 am
You had me at SVN…I need this. Like NEED.
Matt Freedman
April 23, 2009 9:00 am
The advantage of using SVN over Git, for a public project, is that SVN ships with most Linux/Unix distributions, meaning that users don’t have to install anything extra.
blogadmin
April 23, 2009 9:13 am
and think you could set that up on your new dedicated server :)
Tris Hussey
April 23, 2009 9:15 am
Yep, I’m just waiting for the boss to get back to approve it. I think XLite fits for the moment. Unless you have more insight into what we’re using for CPU and RAM capacity.
Matt Freedman
April 23, 2009 9:16 am
We’ll be covering setting up Subversion repositories in our Moving Beyond SSH series, at some point.