Like every other software development team we use version control software to manage changes in our source code and other computer files. For years we have been using Subversion (SVN) as our version control system. In recent times we transitioned to working remotely; as was mentioned in our previous post. Because of this change in the way we work, we figured it’s better to switch to Git as our version control system.

Workflow

In real life we could sit next to each other for code reviews and working in parallel was easy because communication was easy. Using SVN worked fine. Today, we have to orchestrate this source control workflow a bit more and our experience with Git is that it’s better up for this task. The flow with “branching” (changes that happen in parallel along multiple branches) and “merging” (integrate these changes) feels more natural. See this example of a Git branching and merging workflow (a.k.a. Gitflow) where each node represents a set of changes:

A succesful Git branching model by Vincent Driessen

Source: A successful Git branching model by Vincent Driessen.

GitLab

We chose GitLab as our Git hosting service because it’s free and it offers a nice web interface, especially for remote code reviews (through the “merge request” feature) to easily manage our changes and keep up the quality of our work.

Migration

To migrate from SVN to Git we followed this nice tutorial from Atlassian: Migrate to Git from SVN. It took two days to migrate our Caromble! project, but we’re glad we did this! We’re back in a better flow.

Happy gaming!

« »