Contribute to WordPress.org using TortoiseSVN

As WordPress .org runs on top of WordPress itself, you have the ability to help contribute changes to the WordPress.org site itself. This post targets using TortoiseSVN on Windows to create a patch to implement your changes.

Start by downloading TortoiseSVN here: https://tortoisesvn.net/

Once you have that installed, it should automatically add links into the right click menus for you. Create a new directory wherever you’d like to have the code stored on your computer. Navigate into that directory, right click in the empty area and click on the SVN Checkout option

TortoiseSVN right click menu options

You’ll see a new window pop up with more input options available. The ‘Url of repository’ is where the code resides online. As we are wanting to modify content for WordPress.org, the SVN repository resides at https://meta.svn.wordpress.org/. However we want to make changes to the live code so we want to modify the ‘trunk’ version:

https://meta.svn.wordpress.org/sites/trunk/

The above link goes into the ‘Url of respository’ section, the ‘Checkout directory’ section should contain the current directory where you created the new empty directory

TortoiseSVN Checkout Details window

Click OK and TortoiseSVN will go through and copy the files onto your computer. As of March 23, 2019 this takes up about 236mb of disk space for all of the content

TortoiseSVN Checkout completion

Now that we are setup and have all of the files available to us, you can then proceed to open up the file(s) needing modification, edit accordingly and then save your changes. Before we create the patch we need to create a ticket in Trac (the system used to handle modifications to the code) with the details. As we are modifying code on the WordPress.org site itself we want to submit a ticket to the Meta trac

https://meta.trac.wordpress.org/newticket

Fill out the form accordingly and make sure to select the ‘has-patch’ option from the Workflow Keywords dropdown menu

Trac ticket creation

More information on the settings values can be found at https://meta.trac.wordpress.org/wiki/TracTickets. If you aren’t 100% sure on what to fill out, don’t worry too much as somebody may come along later after we have created the ticket and modify it to the correct values.

Click on the ‘Continue to Preview’ button and double check your title/description/settings, once you are ready click on the ‘Create Ticket’ button and your ticket should be published. Now we can go ahead with creating our patch to add to the ticket. Why did we create a ticket before the patch? It is preferred that the patch file be saved as the ticket number. As an example, lets say you end up creating ticket 1234, so the patch we submit to the ticket will be named as 1234.patch

Go back to the directory where you checked out the files. Right click on the directory name, navigate to TortoiseSVN -> Create patch and click on that

TortoiseSVN patch creation

You’ll get a popup of the file(s) that have been modified and assuming they are related to the ticket you created, click on OK to save the patch itself. In the Save dialog window, select where you want to save the patch (anywhere will work technically, whatever is easiest for you) and save the file as 1234 as the file name matching the ticket you created earlier. You’ll get a popup of the file(s) you changed as well as what was removed/added depending upon your changes.

Now that we have the patch ready to go, navigate back to the ticket you created earlier and attach the patch file onto the ticket under the Attachments section. That is it! You’ve successfully contributed code to the WordPress.org site making the world a better place. This doesn’t mean that your changes go live right away on the site though. Depending upon the issue, it may require input from other developers or other people may add in suggestions/changes along with further discussion.

Assuming that the patch checks out ok, a committer will eventually commit your patch into the live code!

More information about contributing to the various different areas in WordPress can be found here