Smart Diff

Note: You must have either Microsoft Visual SourceSafe 2005 or Microsoft Visual Studio Team Explorer 2005/2008/2010 (described here) installed as BIDS Helper 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 BIDS Helper (starting with version 1.6.5) will leverage it.

Note: Starting in release 1.4.2.2, 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 BIDS Helper Smart Diff feature lets you compare versions of a SSAS, SSIS, and SSRS files. BIDS Helper 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 BIDS Helper
SmartDiffOutOfTheBox.png

With BIDS Helper
SmartDiffVisualDiff.png

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:

SmartDiffSSRSBefore.png

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

SmartDiffOptions.png

Other Source Control Systems
If you would like Smart Diff to support other source control systems, add a comment here: other version control systems for Smart DIFF.

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

Last edited Jan 4 at 1:41 PM by furmangg, version 11

Comments

dgosbell May 13, 2010 at 12:46 AM 
Hi Graham,

No, you are not able to save changes when using SmartDiff. We pre-process both files (you will see that both sides are tmp files) and we strip out information, like the positioning of elements within the designer, that is not relevant to the deployed functionality. The aim is to let you see only changes that may be relevant to the functionality of the given file. If you only want to revert a sub set of the changes to a file you should probably take note of these and change them through the UI in BIDS.

Darren

grambo25 May 11, 2010 at 3:19 PM 
If using BeyondCompare, are you able to make changes to the files in BeyondCompare and have those changes saved back out? Or is the diff strictly comparison tool that lets you see what is different, and if you want to merge changes from one into the other, you must make those changes through Visual Studio?

Thanks,

Graham