Why CITS got git
Posted by Ben Hymers | Filed under development
Subversion is good, don't get me wrong, git is just better! In a nutshell, git is a fast distributed version control system, which supports a much more flexible style of development than Subversion. The two features that prompted me to switch were its distributed nature and its support for branching.
The distributed part is interesting; instead of checking out "the latest version" then checking in your changes, you make a complete clone of the repository (including history), do whatever you want with it, then merge your changes to wherever, you want, however you want. The main reason this is interesting to me (and the main thing that prompted me to use git) is that it means I can work completely 'offline', in that I can view full history, make commits, branch and so on without having access to the server. My server is actually an ordinary desktop PC that dual boots into Windows, so sometimes it's not available, and being able to still work properly when it's not on is brilliant. Using Subversion, I would end up building up large changelists whilst waiting to be able to commit, which is a bad thing. Additionally I wouldn't ...
Migrating from Subversion to git
Posted by Ben Hymers | Filed under development
One of the things I've been busy with is migrating Cities in the Sky's source control from Subversion to git. I'll go over the reasons in full in a later post, but in a nutshell, git supports my workflow better than Subversion since it is distributed and supports fast branching and merging.
Now, there are some good guides dotted around the net which deal with migrating from Subversion to git, and with setting up a git server in a secure and maintainable manner, but I found them lacking a little in friendliness and details. There are also a lot of blog posts that more or less copy those guides and add in nothing of their own, sometimes to cheaply draw visitors to their sites, sometimes "in case I forget where the original is", and sometimes just for the hell of it. Rather than add that little bit more redundancy to the Internet, I thought I'd write up a friendly explanation about just what these guides are doing, along with some extra advice I discovered to be useful.
Installing git and git-svn
So let's get started! The first step is creating a git repository from your ...