4
votes

I have a data warehousing solution formed of a series of databases, SSIS packages and an SSAS database. The SSIS packages and SSAS database all sit within source control using Team Foundation Server.

What I'd like to be able to do is branch the SSAS and SSIS projects to enable us to work on multiple streams of work and then be able to merge the projects back in prior to release to a production environment.

TFS allows me to branch my projects with little effort, however merging them back together afterwards results in trawling through pages and pages are difficult to consume XML.

How are other people dealing with this situation? Are there any tools available on the market to deal with exactly these situations?

1

1 Answers

3
votes

As documented in this blog post by Jamie Thomson, SSIS files are effectively binary files so should be treated as non-mergable.

http://consultingblogs.emc.com/jamiethomson/archive/2007/08/06/SSIS_3A00_-Team-Development-Experiences.aspx

He also recommends making packages as modular as possible if you want to have multiple team members working on the same project - this is something we've adopted.

There is a tool called BIDS Helper which provides a 'smart diff' for SSIS files which can be useful for determining changes between versions. http://bidshelper.codeplex.com/wikipage?title=Smart%20Diff&referringTitle=Documentation

But, generally, SSIS files should be treated as non-mergable if you want to avoid hours of pain - we've switched on exclusive check out on all .dtsx files in TFS so that people don't tread on each other's toes.