siteground

Although GIT is everywhere, SVN still is the version control for all the themes and plugins hosted on WordPress.org. I’ve been playing with both SVN and GIT together recently when I need to repeat the same tasks again and again. This article is a small log of useful SVN commands when working with WordPress themes or plugins (only plugins actually, because WordPress.org doesn’t allow us to work with the theme repository directly).

Making SVN and Git working in the same folder

I usually host my open source projects on Github. Most of them are WordPress plugins. In the past, I had to manage 2 folders: 1 for the Git and 1 for the SVN repo. And I just copied from Git to SVN whenever I want to release a new version on WordPress.org. It’s a bad practice and takes time.

It’s much easier to use the same folder for both Git and SVN. When we want to commit to Github, just git commit and git push. When we want to release a new version on WordPress.org, just svn commit. Doing that is not too hard and seems easier than I thought at first.

Step 1: Ignore SVN files for Git

Create a new file .gitignore in the folder and add the following line:

.svn

If the file already exists, just add that line to the end of the line.

This line tells Git to not track .svn folder, which contains all the SVN info of the repo.

Step 2: Ignore Git files for SVN

Similar to the 1st step, run the following commands:

cd /path/to/folder
svn pe svn:ignore .

The 2nd command will open an editor of your choice and you need to enter the following lines:

.git
.gitignore
.gitattributes
readme.md

The first 2 lines are mandatory, while the last 2 ones are optional. If your repository doesn’t have .gitattributes and readme.md, you can ignore them.

If you see an error saying the SVN_EDITOR is not set, simply run set SVN_EDITOR=notepad to set the SVN editor to Notepad. You should change this to another editor if you’re using Mac or Linux.

Now you can run both Git and SVN in the same folder without any problem!

Tagging new version in SVN

If you’re using TortoiseSVN, it has the tool built-in so you can use it simply by right-clicking on the folder, then select TortoiseSVN → Branch/tag…

SVN tagging with TortoiseSVN

In the new window, enter the tags/version into the To path box. Then enter the commit message and press OK.

SVN create new tag

If you’re not using Windows, then simply run the following command:

svn cp https://plugins.svn.wordpress.org/mb-custom-post-type/trunk https://plugins.svn.wordpress.org/mb-custom-post-type/tags/1.2.5 -m "Tagging version 1.2.5"

That’s all!

Hope these tips help you work with SVN faster for WordPress themes and plugins hosted on WordPress.org.

Leave a Reply