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.txtand plugin file header:
Stable tag: 1.0.0- Tag the release by copying
trunktotags/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.pngThen 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!! 😎
