Back to Top

Identifying Changed Files Between Builds or Releases in BuildMaster

In theory, your issue tracking system will identify all of the bugs/improvements/features that will go in a release, and your source control system will have commit comments that identify which changesets go to which issue. Unfortunately, theory and reality often differ. It's easy to check in a change against the wrong issue, or to forget to comment at all.


Sometimes the best way to know which changes are actually in your release is to take a diff of the code deployed to production and the current development code. That way, you can see every line of every file that has changed. For example:

Diffs

This is pretty easy to accomplish in BuildMaster.

Step 1: Label and Tag Your Builds in Source Control

This is something you should already be doing. But in case you haven't, check out Labeling a Build in Source Control with BuildMaster. As an example, here's how we label (and then get by label) our source code:

  • Visual Editor
  • OtterScript
BuildMaster Visual Editor
OtterScript Source

Note that after labeling the code with $ReleaseNumber.$PackageNumber, we get the code to a directory called Src.

Step 2: Get Previous Release's Source Code

To get the previous release's source code, you need to know where it is in source control.

There are two variable functions in BuildMaster that will help out with this: $PreviousReleaseNumber and $PackageNumber.

Here's how we retrieve the code.

  • Visual Editor
  • OtterScript
BuildMaster Visual Editor
OtterScript Source

Like the previous operation, we're getting by label, but to a directory called PrevSrc.

Step 3: Compare Directories

This just takes a single operation called Attach Directory Comparion Report.

  • Visual Editor
  • OtterScript
BuildMaster Visual Editor
OtterScript Source

There's not a whole lot of options to configure for this operation:

Action Configuration

That's all there is to it. With these actions, your builds will now have a report attached to them with whatever name you specified.