UPDATE Jul 15 2012: I have linked my changes at the bottom of the post so you can either grab the bin or the changed files.
Last year I wrote on how our org used tfs2svn to get us out of some jams when our TFS / SvnBridge / ReviewBoard solution was returning errors (Migrate TFS to SVN). We had been using that solution merrily while TFS 2008 Server was in play. Disaster struck when the infrastructure guys upgraded last week to TFS 2010 taking full advantage of the new TFS 2010 Collections paradigm. What the new Collections does is alter the URL so that part of the path after the domain is the collection and part is the repository path (ex: http://tfsserver:8080/tfs/collection/myProject/trunk where the “http://tfsserver:8080/tfs/collection/” part is the server and collection declaration and the “/myProject/trunk” part is the TFS repository path “$/myProject/trunk”.
We are going to start using Agile development for some of our new projects so I was asked to get an project management tool set up. I had used Trac in the past and heard of the Agile42 Agilo plugin for it. I had also used VersionOne professionally but that is a paid app. I eventually decided to give Trac + Agilo a go on our Windows Server 2003 virtual image server called “myserver”. Our project will be called “myproject”.
We have been quite happy running our ReviewBoard / TFS server at work however every once and a while we would get errors during review creation. It turned out that some times the files would get corrupt during the TFS to SVNBridge to SVN diff. This would manifest when the “post-review” command would fail during the SVN diff procedure with logged errors such as:
'svn: XML data was not well-formedn', 'svn: Error reading spooled REPORT request responsen'
The City of Ottawa’s Web group required a code inspection tool to comply with the Payment Card Industry Data Security Standard (PCI DSS) section 6.6 “Code Review”. I investigated a couple of solutions, both open source and commercial, that fit our need for a fast, Web 2.0, side-by-side diff, inline comments, LDAP supported, and feature rich tool. It seems that Atlassian’s Crucible (purchase), Smartbear’s CodeCollaborator (purchase), and ReviewBoard (open source MIT license) were the pack leaders. I had used Crucible at Nortel and I really liked that product, but it was costly. Since I ❤ open source alternatives rather to paying for license fees, I opted to try ReviewBoard first. There was one problem though, the City is a Microsoft shop and we use Team Foundation Server (TFS) <grumble> as our source control repository but ReviewBoard didn’t list TFS in its supported repositories. Hrm…
I was installing SVN on my work PC when I noticed that CollabNet had a video of their SVN submission history. The video demonstrated a moving timeline with a developer’s name surrounded by the files they commit in a sort of firework display. The project called code_swarm (http://code.google.com/p/codeswarm/) is a Java project that parses out source control server history and creates these displays in a processed window. After trying the program out I thought that it would be a fantastic tool to encourage developers to commit small and commit often to “see their name in lights”. As an Agile Programming lover, the concept of continuous integration immediately came to mind and I know that this is a hard concept to get developers to buy into.
I was so impressed with this project that I decided to join it to contribute any way that I can. Everyone should take a look at the Subversion, Apache, and Eclipse codeswarm videos….really nifty.