[wp-hackers] GSoC 2013 (Attempt Two!): Theme Revisions

Corey Alexander coreyja at gmail.com
Sun Apr 28 01:07:55 UTC 2013

Here is my second idea for a GSoC project. Again, this is basically a copy
of my blog post. If you would rather read it there, or read my other post
about my first idea you can check both of the posts out on coreyja.com. I
am thinking about taking the theme versions idea and doing that, but with
the twist of using git to do the actual versioning and let developers have
access to the power of git baked into WordPress.

Here are some of the things I am thinking about for this project.

   - Adding git functionality to each theme, so that a full history of the
   theme and changes can be viewed.
   - Ability to either push commits to your WordPress install and/or the
   ability to pull commits from GitHub (or any git repo) from the WordPress
   admin dashboard
   - Built in history page, with a difference viewer and the ability to
   revert back to any revision from this page.
   - Either creating a commit for every save made in the built in editor,
   or having the option to explicitly commit changes after changes have been
   made through the editor.

To expand on some of the details I had in mind for creating commits through
WordPress, I was thinking about have two or three different modes
selectable through the settings page. The first setting for be for the
“beginner” WordPress users, and would most likely be the default setting.
This would be for people who don’t know anything about git and just want to
have access to their revisions in the WordPress dashboard. For this setting
every save in the built in editor would be equal one commit. A second
option, for those familiar with git and wanting to use it would be able to
bundle multiple changes from the built in editor to a single commit. This
would require the user explicitly saying when they would like to make a
commit, and would allow for the ability to add a commit message. This mode
would also enable the push/pull functionalities. So a developer could push
any changes that were committed through WordPress to their central repo.
And also in reverse pull any changes made elsewhere from the central repo.
This would allow developers to integrate git into their workflow very
easily and while using current git best practices.

Also in any setting option it would be necessary to have some sort of cron
job, or something similar, to watch for file changes made directly to the
FTP and add commits for those as well. This could also be done with an
explicit option as well, but I think there should be some sort of system
for doing it automatically, for those users who just want versioning to
work without any added effort.

As before, shoot me an email, reply to this chain or leave a comment on my
blog if you have any comments or suggestions!  Thanks everyone for reading
and helping me out!

--Corey A.

More information about the wp-hackers mailing list