chris.software     development     reviews     feed

Searching for Source Control

It has taken me a few days to sort out exactly how I want to store my project. There are a lot of options - I took a long, hard look at GitHub, but in the end I felt that its environment didn’t align with my goals. I don’t expect anyone to be contributing to my work, and it’s going to be very content-heavy - Google Code provides 2GB of space for all new projects, which sounded like a good amount to have available, especially given the amount of revisions that I will be going through in the next year. I also appreciate the integration into an account that I am fond of.

After picking licenses and so forth, the real question came - SVN or Mercurial? I started out wanting to use Git, so it seemed only natural to pick the distributed source control option. Immediately I downloaded TortoiseHg, which I found to be a bit more cumbersome to use than TortoiseSVN, however, knowing that a more successful merging capability awaited me made the very slight unwieldy feel bearable. I set up my Google Code project and licenses (which may need to change if the technologies I use have conflicting ones), which can be found here. This is just the main project - my A.I. library will be utilizing a separate project and repository. Ideally I will be able to design it well enough that it makes sense to keep it in its own library, rather than as a part of the recursor project.

The Workflow

TortoiseHg is a bit interesting to use. For the most part I find it’s very intuitive having used both TortoiseSVN and Visual SourceSafe, but a distributed source control system has a bit more you can do. The basic workflow I tried today was the following…

This is a workflow I can live with. I am interested to see what other capabilities I might find useful as the code for the project expands. I am also excited about cloning the repository to test or refactor without destroying the project. TortoiseHg provides a lot of nice views into the repository web, so you can get a good idea of what exactly is going on with your project over time.

Now that these things are created, I’ll create another Google Code project/repository for the A.I. library and start implementing some of the things covered in the cheap/worthless looking, but very well-reviewed and recommended A.I. Techniques for Game Programming.