Upgrading a Customized WordPress Theme

Problem:

You’re using a third party wordpress theme but have made changes to customize it for your own needs (changed a picture, added advertising, etc.). When the third party releases an upgrade to the theme you’d like to upgrade but don’t want to lose your changes.

Solution:

Let your version management system move your changes over to the new version for you. I use Subversion, but any modern VMS should do fine as well. Here’s the steps I use to upgrade from, let’s say Cool Theme 1.0 (that contain my changes) to Cool Theme 1.1.

  1. Import the original version of Cool Theme 1.0 (without my changes) to Subversion. I use a repository path like /reposroot/cooltheme/trunk.
  2. Create a tag to freeze the 1.0-version. In Subversion you just copy the above directory, I name the new directory something like /reposroot/cooltheme/tags/1_0.
  3. Create a branch from the 1_0 tag. I’d name the branch /reposroot/cooltheme/branches/r1_0.
  4. Checkout the r1_0 branch to a local working directory.
  5. Copy the files of the updated version of Cool Theme, the one that contain your changes, to your working directory.
  6. Check in. Now you have the current version in the r1_0 branch.
  7. Delete the working copy if you like, it has served it’s purpose and the time has come for the actual upgrade.
  8. Checkout the trunk branch (reposroot/cooltheme/trunk in my example) to a working directory.
  9. Copy the files of the upgraded theme to the working directory.
  10. Check in the changes.
  11. Once again, delete the working copy if you wish.
  12. Create a tag for the new version (reposroot/cooltheme/tags/1_1 for example).
  13. Create a branch for the new release (copy the 1_1 tag to reposroot/cooltheme/branches/r1_1)
  14. Merge the changes between r1_0 and r1_1
  15. Handle conflicts
  16. Check in.
  17. Voila! You should now have an upgraded version with your changes in the new release branch (reposroot/cooltheme/branches/r1_1)

RSS feed | Trackback URI

Comments »

No comments yet.

Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> in your comment.