I am doing some experiments with the TwentyTen theme and Git. Up until very recently I have never used Git, I’ve done all of my version control with Subversion. With Git gaining in popularity, I see more and more WordPress projects using it. I figured I ought to educate myself.
I recently picked up the O’Reilly Version Control with Git book. On a recent trip to Phoenix and back I read through a fair amount of it. I have found that nothing forces you to learn how to do or use something like having a real problem to solve. You can take training classes, read books, attend lectures, etc. but you’ll never really learn until you have to actually have to apply the material to solve a real problem.
It was like that for me with Git. While I’ve used Subversion for quite a while, I was having a tough time getting my arms around the concepts of forks, pushes, pulls, etc. For all practical purposes, I still am but I am getting there.
I like the idea of child themes. I have no desire to completely reinvent the wheel. The guys who put out WordPress are smart and clever and have done some nice themes that work well. In particular, I like TwentyTen as a parent theme and have done a couple child themes from it. I find myself using some of the same ideas and plugins across these theme projects so what I’d really like is a core child theme that I can adapt or build from that contains all of the things I like and have figured out already.
So while reading up on Git I envisioned being able to use it to build a base theme that I could adapt to several others very quickly. If I made a change it would propagate out to the other themes that are based on the base theme. At least that is the theory. I am still not sure if it will work like that or not but I’ve decided to try.
For the past day or so I’ve assembled a TwentyTen child theme I am calling TwentyTen-ACME. Why ACME? Because it is a pretty generic name. ACME was the company that provided everything to Wile E. Coyote in the Road Runner cartoons. ACME is the definition of generic!
So now that I have my base theme pretty much done, I am going to build a derivative from it for a project I am doing for our middle school. Shortly there after I am going update my LEGO theme which is based on Sandbox and is long overdue for an update. I am hoping that as I need to push changes back to the base theme I will be able to flow them back out to the others quickly. We’ll see.
Mike,
You should have a look at my GitHub Updater plugin. If you add the appropriate header to a theme or plugin it will automatically pull in updates similar to WordPress. I wrote it to use with all my GitHub hosted child themes and plugins not on WP.org repo.
Let me know what you think, or if it’s useful.
Andy
https://github.com/afragen/github-updater
That sounds pretty interesting, I will check it out. I am still learning my way around Git – made a couple mistakes in trying to base several themes on a common core but I am figuring it out.