Git’s Coolness

I started to realize how cool git is when I saw this:
Visualization of an octopus-style merge with git using gitk.

I can start to see how git’s line of thinking, and especially its parent/child tracking could really make merges a TON easier than most people experience. Instead of taking up most of a senior developer’s time, it could make it enjoyable — maybe. :-)

I’m game to check it out and switch from subversion.

Automate the Tiny Things

I don’t know how many years I’ve used the following command chain to add all my unknown files to Subversion:

svn st | grep ? | sed -e s/? *// | xargs svn add

Inevitably I occasionally end up using that string on some directory where I have a space in the pathname, and everything bombs. So I finally got around to adding it to my ~/.bash_aliases file today, with the additional -e "s/^\(.*\)$/\"\1\"/". Simple, really (just make sure that something sources that file):

alias svnaddall=svn st | grep ? | sed -e “s/? *//” -e “s/^\\(.*\\)$/\\”\\1\\”/” | xargs svn add

I may still play with the actual alias name to see what sticks in my every day practice. Maybe I totally missed a way simpler way to do this. Seems like I’ve done something like this since back when I started using Subversion at release 0.18 or 0.19. Maybe I haven’t kept up, so I’d be happy to be enlightened.

Do you have anything tiny hanging around that should be automated right now?

Calm before the storm

Tonight we’ll be deploying the first beta of a major new feature of our product that my team’s been working on since September. Don’t get me wrong, we’ve release updates to our product every two weeks. Our branching strategy is such that we have one month cycles on /trunk that branch on release, and are followed up by a second release two weeks later with some new functionality, but no major restructuring. That keeps us building along happily every two weeks with a way to take on bigger work on the four week branch.

Pieces of it have been growing in the app for some time, but tonight we flip on the central piece for a few small groups. We had a hectic day yesterday, and ultimately discovered a networking problem two teams away that prevented us from hitting our well-publicized deadline last night (always make sure to setup your QA environment as closely as possible to your production environment). All that should be resolved today. Everything’s done.

Now there’s nothing more to do for this release but sit and wait to see which way the wind blows.