For anyone who has been using it regularly, it is no surprise that I find Git to be fairly cool. Indeed, I’ve used it enough that I’m shocked myself. However, I’ve been moved to blog by a singularly cool git-related event.
Internally, we’ve used Subversion a lot. It works well enough, but, particularly with development on projects as large and hot as Rubinius, flexibility is king.
So, let me set the stage. I have this project that I’ve been working on. It’s been the focus of most of my coding effort for about a month. We are also a geographically distributed organization. Finally, we’ve recently been moving things from SVN to Git.
I woke up this morning and, to my surprise, one of our very talented developers in the UK had taken in upon himself to move my code to Git from it’s comfy home in SVN. After a brief bout of unhappiness, I set out to “git” the source and continue development unabated.
To my chagrin, he had put the source into a repository without giving me access to said repository. Specifically, he had given access to everyone who was in IRC at the time, and I was not among the lucky ones.
At this point, our boy Ezra came to the rescue. He let me pull from his repository and I worked. After a while, I got access and committed my changes. As time progressed, I was able to pull and push to his repository to get and provide updates.
Had this been CVS or SVN, I’d have been out of luck. Pushing to a new repository would have been a pain too. With git, I was free to work and everything else sorted itself out. Changing to the official source was a single git-config command.
I don’t know about you, but I just think that’s pretty neat.