Skip to content

Using SVN Without Crying – Deploying Your Plugin Like It’s 2050

WordPress.org doesn’t use GitHub to manage plugin code. Nope. They use SVN, a version control system so old it probably remembers dial-up.

But fear not — I’ll walk you through it like your nerdy best friend who drinks too much coffee and configures dotfiles for fun.

“SVN: Because Git didn’t RSVP to the WordPress party.”

🛠 What You’ll Need

  • Your WordPress.org account (approved plugin — woo!)
  • SVN installed
  • Basic terminal skills
  • A calm soul (optional)

On Mac/Linux:

bash
sudo apt install subversion   # (Linux)
brew install svn              # (macOS)

On Windows: Install TortoiseSVN, or better yet, install WSL and pretend you're on Linux like the cool kids.

🌐 Your SVN Repo

Once approved, you’ll get an SVN repo that looks like:

https://plugins.svn.wordpress.org/my-noob-plugin/

The structure inside will look like this:

bash
my-noob-plugin/
├── trunk/
├── tags/
├── branches/
  • trunk/ → your latest plugin code (this is what WordPress uses)
  • tags/ → version snapshots (think: releases)
  • branches/ → you probably won’t need this, but it’s here for dev versions

🚀 Step-by-Step Commit

  1. Checkout the repo (pull it locally):
bash
svn checkout https://plugins.svn.wordpress.org/my-noob-plugin/ my-noob-plugin-svn
  1. Copy your plugin files into the trunk/ folder:
bash
cp -r ~/path-to-your-plugin/* my-noob-plugin-svn/trunk/
  1. Set the correct version in your readme.txt and plugin file header:
txt
Stable tag: 1.0.0
  1. Tag the release by copying trunk to tags/1.0.0:
bash
cd my-noob-plugin-svn
svn cp trunk tags/1.0.0
  1. Commit everything:
bash
svn add --force *
svn ci -m "Initial release of version 1.0.0"

SVN will ask for your WordPress.org credentials. Breathe. Type slowly. You're doing great.

🎨 Adding Icons and Banners

To make your plugin look 🔥 in the directory, drop these files in the assets/ folder (not in trunk/):

bash
assets/
├── icon-128x128.png
├── icon-256x256.png
├── banner-772x250.png
├── banner-1544x500.png

Then commit just the assets:

bash
svn add assets/*
svn ci -m "Add plugin icons and banners"

Lookin’ good, champ.


🤓 Pro Tips

  • No node_modules allowed — keep it lean.
  • Don’t include .git/, .DS_Store, .env, or your hopes and dreams.
  • You can keep working on your plugin on GitHub and sync updates to SVN.

Want to roll into Updating Your Plugin now, check next!! 😎

Built by noobs, for noobs, with love 💻❤️