Friday, April 17, 2009

One of the most requested version control supports in TeamCity is Git. We do not (yet?) use it ourselves but were a bit affected too because most of the Ruby projects we setup on teamcity.jetbrains.com to demo our Rake runner were moved to Git and we could not build them anymore.

There was a git-teamcity project on gitgub, but it seems that the first author lost interest before it took off. Luckily, it was branched by Chris Ortman and the first working Git plugin for TeamCity appeared some time after. The plugin was installed on some public instances like CodeBetter.com.AFAIK the plugin uses agent-side checkout and relies on git binaries present on TeamCity server and agent machines.

After IDEA officially received Git support we got a chance to devote time to adding Git support to TeamCity. IDEA integration is based on git binaries but JGit was chosen as an integration method for TeamCity plugin.

Quite naturally, TeamCity Git plugin sources were put into Git repository. Thanks to Git distributed nature it was no problem to start with local repository on the developer's local machine and then push the changes to public repository without any special treatment to save the history.

Several weeks ago we installed the Git plugin in our internal TeamCity installation and started to build the plugin with TeamCity. Today we upgraded teamcity.jetbrains.com to just released build (4.5 RC), added the plugin and now are able to build the plugin so everyone can have access to the most recent version in the best traditions of CI.

Please note that the plugin is in EAP stage, so critical issues can be encountered. Please also ensure you have the latest TeamCity EAP build as the Git integration plugin is not compatible with previous versions.