Thursday, October 06, 2005

Sometimes You Can Find A Difference


Recently I was given the task to write a SpamAssassin (SA) plugin for Guinevere. Guinevere is a mail filtering, virus scanning, rule following rootem tootem program for the GroupWise email system by Novell. It makes sure that viruses and other nasties cannot get in through your Mail Internet Gateway. It has had SA protection since version 2 but Mike Bell (the author of Guinevere) wanted a system more tightly integrated and let's face it, quicker.

Well, to make a short story long I've been maintaining the plugin now for 6 months or so. In that time HUGE changes have been made to the modules that make up SA. When a new revision of SA comes out it is my job to figure out what exactly has changed and how to deal with those changes.

Imagine my surprise (NOT), when major changes were made to how SA processes mail in the last major release (3.1). I was faced with how I was going to understand these changes. I needed a file differencing program and voila, WinMerge to the rescue.

WinMerge is a great, free, file differencing utility. It also has the ability to merge changes from one file version to the next. Since I keep older version of my changes to SA code in a vault I was able to quickly see what had happened to make my plugin not work. I wholeheartedly suggest you take a look at this utility when you're not sure what has changed between versions of your program.

No comments: