Git mirror for Basetheme Genesis

The fabulous basetheme Genesis is now mirrored on Git.

This has several advantages. A basetheme is used as scaffolding for your own theme. During upgrades and bugfixes, however, your altered version will be hard to keep in sync. Usually this costs a lot of manual labour; eliminating one of the advantages of a basetheme: continuous re-use of existing work.

With git this becomes really easy. As long as you don’t completely overhaul the base (core) of genesis, you can git-clone and git-merge all the future development on this base theme into your derivative!

The cron and synchronisation-scripts are based on Mikkel Høgh’s Drupal core synchronisation-work. Please be aware that I create and maintain this mirror for personal use, so there is no guarantee that I will continue doing so. When I no longer use genesis (not anytime soon, I expect) or when my synchronisation server breaks or when I finally decide to become a fulltime bike repair man, updates will probably no longer come in.

It’s all starting to make

It’s all starting to make sense now, thanks!

Genesis is nice :) Having a

Genesis is nice :) Having a subtheme of Genesis in Git sounds like an interesting use case to me to learn more about this Git thing. I guess I have to try it out to experience why git-clone and git-merge are so ideal for maintaining your own sub theme? If you could expand on that a bit, would be nice.

For example, would I have my own clone of the base Genesis as well or just my sub theme? Thanks!

The way I have it set up

The way I have it set up implicates the following:

  1. You clone the entire genesis.
  2. You add your own subthemes to that.
  3. Optional: you edit some genesis core things, such as changes to core CSS, or template files.
  4. On updates of genesis, you pull+merge these updates into your own genesis-clone.
  5. On the rare (but possible) occasion of conflicts, say code in genesis-core was changed that you also changed on your side, you will need manual editing.

So, you will be maintaining an entire clone of Genesis in your own environment. In that clone, you build your own subtheme. You may, or may not change core of genesis too. Due to the vary design of Git, this “don’t hack core” mantra can be made into a “rather not”, instead of “never-ever-ever”. Especially in the case of “core” of such a base-theme.

An example is my hacked-up genesis http://github.com/berkes/drupalyuibasetheme. For now, every change still fits in a subtheme (good! No genesis core hacks required, limiting chance of conflicts). But because of a) speed-issues (I use YUI, so large parts of the core code in genesis is obsolete) and b) simplicity, I will have to hack up core. But I can still benefit from development, such as the upcoming overhaul for D7.