Smart Diff

Applicable to: SSAS Multidimensional | SSAS Tabular | SSRS | SSIS | Common

Applicable to Tabular Compatibility Level:
SQL 2012 SP1 / SQL 2014 (1103) | SQL 2016 (1200) | SQL 2017 (1400)

Note: You must have either Microsoft Visual SourceSafe 2005 or Microsoft Visual Studio Team Explorer 2005/2008/2010 (described here) installed as BI Developer Extensions leverages the visual diff dialog from either of those tools. (Though at least one of those tools must be installed, your solution does not need to be bound to source control to utilize Smart Diff.) Visual Studio 2012+ includes a built-in diff viewer, so BI Developer Extensions (starting with version 1.6.5) will leverage it.

Note: Starting in release, you can setup a custom command line diff viewer in the Preferences screen. Once setup, you do not need to have VSS or TFS installed to use Smart Diff.

The BI Developer Extensions Smart Diff feature lets you compare versions of a SSAS, SSIS, and SSRS files. BI Developer Extensions preprocesses XML files so that the diff versus source control is more meaningful.

Doing a diff on two versions of an Integration Services package is very unhelpful because the XML of the dtsx file is not formatted in a way that lends itself to comparison. The XML is not pretty-printed, the XML elements aren’t always in the same order even when order isn’t important, and unnecessary information about layout and formatting obscures detecting differences which actually impact execution of the package.

The Smart Diff feature pre-processes the files by pretty-printing the XML, ordering elements in a consistent manner, and removing unnecessary layout/formatting information. Smart Diff supports comparing to versions from Microsoft Visual SourceSafe and Microsoft Team Foundation Server. Smart Diff can also be run to compare two files on the local disk when the current solution is not bound to source control (or if it is bound to an unsupported source control).

Without BI Developer Extensions

With BI Developer Extensions

Reporting Services report provide a similar problem in that the order of some tags is not important, but they make a diff unusable. For instance, in the following screenshot, note that despite the difference in ordering of tags, nothing has really changed:

Right-clicking on the file in Solution Explorer lets you launch the Smart Diff feature:

Other Source Control Systems If you would like Smart Diff to support other source control systems please create an issue here requesting that.

If you use TortoiseSVN, see the ORAYLIS BI.SmartDiff CodePlex project for an alternative.