One great tool I forgot to mention in Cool Technologies was git. Git is a decentralized SCM developed by Linus Torvalds. for Linux.
My experience with SCM software has been largely positive which I feel is definitely the exception. At Empirix when I first arrived they were using SourceSafe. It was clear everyone hated it and a short time after I started the switch was made to Perforce. I was really excited about this given how Linux friendly Perforce is, especially in comparison to SourceSafe. I quickly got used to the command line interface and used it almost exclusively. I will say that the GUI interface is amazing and I did use it frequently to search for changes, check diffs etc… At Empirix we were working relatively closely with the bleeding edge powerpc branch of the Linux Kernel and they were obviously using git. So I had some experience with the basics of it but we kept the Empirix kernel under Perforce and did all our development in that environment.
When it came time to determine what SCM software to use with Movolu I ended up deciding on using git. Perforce wasn’t an option because of it’s licensing which essentially left the choice between SVN and git. I had always wanted to learn more git and I thought the distributed model was just too cool. Distributed is absolutely perfect for open source projects but I really thought it would work great for a small startup like Movolu as well.
In the end I had a few general thoughts after working with it. The first is that the branching etc… is quite nice. With Perforce it’s a little bit of an adventure each time and on one occassion even resulted in a pretty major mistake. I did think git was a little overly complicated. I think simplicity is majorly important and hands down git was more complicated and more difficult to master than Perforce branching aside. I don’t think this has anything to do with the distributed model either. I also really missed having a top notch gui interface for looking at file revision history etc… I think I would use it again for my next project but if Perforce changed their license I think I would go with that (I realize it’s free up to a certain number of users but I would just fear lock in).