July 22 Johannes Schmitt schmittjoh

Semantic Diffs and Activity Streams

Scrutinizer collects a lot of data for your project ranging from concrete issues, over patches to raw metrical data. So far, Scrutinizer has always shown you the current state of your project in the form of inspection results.

As you start using Scrutinizer, inspections might contain a lot of issues. So many that you cannot fix them right away, but need to work on them bit by bit over several sprints. To allow you to stay productive and use all of Scrutinizer’s analyses without drowning in information overflow, Scrutinizer now supports the wonderful concept of semantic diffs.

What is a Semantic Diff?

A semantic diff is much like a diff as you know it from Git, but instead of comparing the changes in terms of lines removed/added, the the structure of your project is compared. This allows Scrutinizer to point out exactly which issues are created, changed or fixed by specific code changes. Since an image says more than a thousand words, let us take a look:

Semantic Diff

In the above case, two issues have changed. As you can see for changed issues, Scrutinizer not only shows you the issues that changed, but also points out how they changed. In the above cases, both the number of methods and the complexity increased.

Even if you cannot fix the issues right away, semantic diffs give you a good indication on where your project is headed.

Activity Streams

As another feature to help you to stay on top of your project and view its progress, we now generate activity streams both for your repository and also individually for each user:

Repository Activity Stream

We already found these features very helpful in the development of Scrutinizer itself. Besides it is also a very rewarding experience to focus on progress and see the number of issues dwindling from commit to commit.

We hope you love them as well!

 

Have Feedback? Tweet to @scrutinizerci

If you experienced a bug or have any questions, please send them to [email protected].