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:
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:
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
- Checkout the repo (pull it locally):
svn checkout https://plugins.svn.wordpress.org/my-noob-plugin/ my-noob-plugin-svn
- Copy your plugin files into the
trunk/
folder:
cp -r ~/path-to-your-plugin/* my-noob-plugin-svn/trunk/
- Set the correct version in your
readme.txt
and plugin file header:
Stable tag: 1.0.0
- Tag the release by copying
trunk
totags/1.0.0
:
cd my-noob-plugin-svn
svn cp trunk tags/1.0.0
- Commit everything:
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/
):
assets/
├── icon-128x128.png
├── icon-256x256.png
├── banner-772x250.png
├── banner-1544x500.png
Then commit just the assets:
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!! 😎