Git for scm with students

Saw Scott Chacon do a great talk at Scotland on Rails, which convinced me that Git would be more useful than subversion for students to use with projects. It looks a breeze on *nix or Mac, but less so on Windows. The immediate goal is to get Git installed on the department server so that it can be used with group projects for the conversion MSc programme as part of their industrial projects. In the longer term it would be good to get all students to use it for their own code in all classes as a matter of course. It would be just so cool to pull down clones of student assessments instead of messing around with zip files and cds. Maybe one day.

The bit I really like about git is that you can work locally, do what you need, and then upload your revisions to a remote server when you have connnectivity. This makes working on laptops, etc so much better than in what happens with subversion. From what Scott said git is also much faster, takes up less space, and offers more functionality than subversion.

On windows you can download and install git extensions, which has git included too, and then get the various putty parts you need, which seems to work better than using the openssh parts included in git. From the putty page you need to download putty, puttygen, plink, and pageant to work with git. Save them all to something like C:\Program Files\putty\ (which you’ll need to create).

With that in place we can work through the basics of using Git on windows with the manual from msysgit, and the useful ‘illustrated guide to git on windows‘. Probably will need to enhance them though with a walkthrough of using it and then merging projects, and uploading to group repository.

The next stage beyond this of course would be to ensure that tests are included, and that there is a continuous integration system set up to pull the code from git and to run it. I’ll need to look at that and pull something together for showing students how to do that.


We can also look at the chapter in Pragmatic Version Control with Git, which has lots of good material in it, about setting up gitosis, so that all students can connect to a repository to push/pull their code from behind the proxy, instead of having to fight their way past it. There is also a good article on setting up gitosis, which will no doubt prove useful.