Project Overview

Sep 18, 2008 at 4:49 PM
TFS Spam is a tool I developed having used CVS Spam in the past. It basically lets you replace the standard TFS check-in e-mail notification with a richer e-mail that contains a diff for the changeset, making it easier for team members to stay informed about what's happening in the code base. It also provides a (very) ad-hoc code review process since everyone on the team gets to see the changed code and can comment on it if they feel so inclined.

The TFS Spam colution contains 4 projects:

TFS Utilities

This project provides some very simple helper classes to make working with TFS a little bit more convenient.The primary classes of interest are TfsSpam.Utilities.VersionControlService, TfsSpam.Utilities.TfsEventParser and TfsSpam.Utilities.TfsLogger.

TFS Changeset Differ

This project provides the bulk of the functionality:
  • The classes in the TfsSpam.Differ.Configuration provides the support required to read all required configuration information from the appropriate app.config or web.config
  • TfsSpam.Differ.CheckinEventProcessor is the "entry point" for generating the check-in event e-mail (start at the ProcessChangeset() method)
  • TfsSpam.Differ.ChangesetDiff does the work of generating an XML document containing the relevant information for the changeset (start at the WriteChangesetDocument() method)
  • TfsSpam.Differ.FileDiffer does the work of comparing two files against each other and generating the difference information. This is done using the Diff class provided by Matthias Hertel

TFS Spam Service

This project implements a very simple web service that receives the check-in event notifications from TFS and dispatches the processing of the event to a worker thread from the thread pool.