Version control

I have kept software and writing projects in version control since I was an undergraduate. I started with CVS, then moved on to Subversion, then switched to git (though I sometimes dabble with Mercurial). These days, I tend to use git even when collaborating with folks who use Subversion; the git-svn interface is pretty good, and I really like having a local repository that is different from the central, shared repository.

More recently, I’ve started using BitBucket for most of my projects. I think GitHub is also a fine system – that’s where these pages currently live! – and I have collaborators who use Assembla and CodePlex. At one time, I also had some projects on SourceForge, and Cornell has an institutional version of that same software.

I like BitBucket for a few reasons. It’s a hosted service run by someone else, and I’m willing to let them worry about security and backups – though it helps that I don’t work on anything classified, and I do keep my own backups as a safety blanket. They have a pretty nice interface for browsing activity in the common repository, and it’s easy to give others access for collaborative projects. And they offer unlimited free private repositories for academic users. This is appealing not only because I’m an academic user myself, but because I can point my students at it. This became especially appealing about a year and a half ago, when I started noticing student solutions to homework problems showing up in public GitHub repositories. On the one hand, I applaud the students for using a modern version control and collaboration option; on the other hand, grading gets tricky if everyone makes their course codes public!

Comments

blog comments powered by Disqus
Fork me on GitHub