Since it's Valentines Day, I'll squee about something I love. Github. Oh I loves it so hard. Hopefully this love will stand the test of time.
For years now I've wanted to replace mailing patches around with a version control centric system. I drop patches on the floor all the time, they get lost in my inbox or in the ticket queue. And that sucks, because people who actually write code are really valuable.
To fix this, I want a system that let anyone make their own branches, which they own, for each task they want to do. They could do easy updates from trunk, and when they're ready, they'd ping the project integrator to evaluate the change and pull it in.
SVK came close to this potential, with it's easy pushing and pulling and SVN-like syntax, but I never came around to making the associated tools and web site. Now, github has implemented this. This is why I've moved Test::More to github and why more will be following.
Instead of branching, you fork the whole project. Git makes this cheap. You have total control over that fork, which is good because I'm a terrible bottleneck. When your ready, you issue a "pull request" which pokes me to look at your changes and integrate them. Even better, there is a fork queue where you can see what changes are pending. Then a few clickies on web forms and the patches are integrated. It's a whole lot easier than the normal git pull process (see step 5). Github's integration process could provide a little more information about the merge, but I'm sure that will come.