Issue/feature tracking with Git and Redmine under Windows

Over the last couple weeks, we’ve been trying to pick out a solid combination of tools for a Windows based dev environment. The key components are: source control (SCM), continuous integration (CI) and issue/bug tracking. Our choices: Git for SCM, TeamCity for CI and Redmine for issue/feature tracking.

We originally tried out Fogbugz, but it’s integration with SCM solutions, particularly Git is somewhat limited. Even for SVN it relies on external web interfaces such as WebSVN. Still, it does look like a great issue/bug tracker and I hope they can resolve their SCM integration issues soon. Up next, Redmine.

Redmine has excellent built in SCM integration for a wide range of systems including SVN, Git, Hg and more. It has it’s own repository browser built-in and thus is not dependant on any other components to make it work. Even more, it comes with a host of community supported plugins. Two that caught my eye were a charting plugin to provide burndown and other charts and a code review plugin.

Setting up Redmine is fairly easy, even for Windows. You can download a Redmine WAMP stack from Bitnami (or a LAMP stack for Linux), which will get you setup and running with Redmine, MySql, Ruby and Apache in minutes (it also includes a Subversion server which you can use if you really prefer SVN). Unfortunately, while the 0.8.4 version included by Bitnami supports Git repositories it is missing support for Git branches. That feature was added to the trunk after 0.8.4.

I decided I wanted to have that feature and I also wanted to have the ability to update my Redmine installation from the trunk whever I wanted. I spent some time reading through their Wiki documentation on upgrading and it definitely seemed doable. Sadly, though it was a breeze to get Bitnami’s stack installed, it was not as straightforward to get it working with the trunk version of Redmine. Below, I outline for posterity the steps I took which finally got it working for me. I hope this will save others the pain and suffering (and a days worth of my time) that I spent fiddling around.

Before starting I recommend reading the Wiki pages on installing and upgrading Redmine. We will be performing several of the steps descibed there and the Wiki can be a good reference if you get stuck.

Updating Bitnami Redmine from 0.8.4 -> trunk

rake db:migrate RAILS_ENV="production"
rake db:migrate:upgrade_plugin_migrations RAILS_ENV="production" rake db:migrate_plugins RAILS_ENV="production"
rake config/initializers/session_store.rb

in environment.rb. To downgrade you can run the following:

gem install rails -v=2.2.2 gem uninstall rails -v=2.3.2
gem install mysql

you will get an error message about documentation, just ignore it.

ruby script/server -e production

you should be able to access http://localhost:3000/ and everything should be working. Ctrl-C out of that we have some more work to do still.

Wow, it seems a lot easier after all written out, but believe me this took all day to get working (and then some). Please let me know if this doesn’t work for you (because I am thinking I may have forgot something…). While I prefer to set up software like this under Linux, we all know that isn’t always an option. Those of us chained to Windows environments shouldn’t have to suffer alone.

Just from initial testing and playing around I can see that Redmine is going to be a great product.

comments powered by Disqus