A lot of chatter about using Git and Subversion from the command line versus clients. Folks, take your time and learn the command lines. There’s a lot of stuff you can use the UI clients don’t always wrap into UI. Things like post-commit hooks, etc make the command line way more pure and powerful.

Here’s the same list for Subversion.

But for Git/Github, you can get most of what you need out of git clone, git commit, git push, git pull, git status, git diff and git merge.

Learn these and you won’t know everything about git, but you’ll be most of the way there.

A lot of chatter about using Git and Subversion from the command line versus clients. Folks, take your time and learn the command lines. There’s a lot of stuff you can use the UI clients don’t always wrap into UI. Things like post-commit hooks, etc make the command line way more pure and powerful.

Here’s the same list for Git/Github.

But for Subversion, you can get most of what you need out of svn co, svn ci, svn commit, svn diff, and svn status.

Learn these and you won’t know everything about svn, but you’ll be most of the way there.

How is WordPress Subversion Organized

svn


There’s some confusion about how WordPress organizes it’s Subversion (SVN) repository. Most SVN repositories are organized into three main directories, as is best practice — trunk, tags, branches.

The repository can be found at http://core.svn.wordpress.org/ and a primer on how to use SVN for WordPress development can be found on Mark’s blog and, for Windows, on Westi’s blog.

Though there are varying schools of thought as to how branches and tags work, WordPress follows the following system:

/trunk is where future release development occurs. Right now, WordPress development is focused on an upcoming 3.3 release. All development for this release is going into /trunk.

/branches is where 3.3 will go once it is released (or where future “branches” of the software will be housed down the road. The directory contains a series of directories that are branches from the current release development — for example, /branches/3.0, /branches/3.1, /branches/3.2, etc. What you won’t find in branches are security (or dot) releases.

For instance, when a security vulnerability is discovered, it will be patched in /trunk for the current development branch and may be backported to the previous release branch (currently, 3.2). But until the next security release of WordPress comes out for that branch, it is still considered “development” and not “stable”.

/tags is where stable releases are archived. No development goes into tagged releases. These are final releases. You will find every release here in the form of /tags/3.2.1, /tags/3.2, /tags/3.1.4, etc. If you’re looking for the latest current stable for production, this is the place to look.

When branches achieve the next milestone (i.e. a maintenance or security or “dot” release), this is the place where the code is kept.

Hopefully this makes the WordPress repository (and maybe other projects) clear as mud.