Blog Engine Stuff
Last night, I stayed up way too late working on my blog engine. First I went through and made it work with all the latest stuff: Rails 2.0.1 and the new make_resourceful nested resources support.
Now, I actually have no idea if anyone other than myself and Will Farrington uses this engine. If you do, please let me know. I’m terribly curious.
Although I have a sneaking suspicion that no one does, I still choose to act as though at least a couple people do. As such, I try to make using it at least minimally reasonable for these hypothetical people.
One thing that’s bothered me for a while about the way I’ve been setting up the engine is that it’s deeply tied to my layout. This is an issue because it makes it hard for people to customize. They always have some weird discrepancy with the central repository that they have to resolve.
It also makes people use my layout by default. While I’d be honored if folks liked my layout and decided to use it, I’d much rather they used it because they liked it, rather than using it because it’s the default.
The solution was clear. I needed to switch to a distributed SCM system. Then hypothetical people using the engine will then be able to take advantage of the system’s patch-merging facilities to manage their layouts as distinct from mine.
Naturally, after having just played around with darcs for ruby-wmii, I decided to use git.
Git may not prove the best SCM to use in the end. It’ll need to make it reasonably easy to maintain branches that are the same as the central branch in most respects but consistently different in others.
Luckily, I won’t have to rely on hypothetical reports from hypothetical people to figure out whether or not this is working. Now that I’m using a distributed SCM, it’s easy for me to maintain a central “engine” branch alongside a personal “my blog” branch.
Over the next however-long-it-takes, I plan to move the central branch away from my layout, and towards a more nondescript default. Then my local site will have the same relationship with the central branch as everyhypotheticalone else’s will.
So how do you get this new gitty goodness? The repository is located at git://nex-3.com/nex3.git. To get it, run
git clone git://nex-3.com/nex3.git
You now have your very own branch of my engine. I won’t go into a whole lot of depth on how to use git, as there are a ton of tutorials out there already about it, but there are a couple cool implications of a distributed SCM.
The basic idea is that instead of one repository that many people commit to from all over, each person has their own “branch” of the project. Mine is still the main branch, but only by convention, not because of any real properties. You can make your own changes to your local branch as well as pull the changes I make to the main branch.
It’s all very fun.
About Me
Unspace


