0

In my small team, when one developer makes a change to a fairly large SSIS package, and commits the change to the GIT server, it causes all other users who then want to pull that commit to experience a fetch failure with the message “failed to inflate packfile”.

I spent a few hours isolating the problem down to a single moment. I have a SSIS package with lots of data flow tasks. When I add just one more data flow task and commit that as the only change, the error occurs.

I do not think it is directly related to the SSIS package file size. I have bigger packages using lots of SQL tasks for example and they are fine.

The problem seems related to layout information. If I remove the contents of the CDATA section (effectively putting the package into auto-layout mode) I can then commit the change. If I then move every task, and every component with the data flow task (yes I did do this) the problem re-occurs. I am guessing that something about how GIT calculates it’s deltas in the packfile is having a problem with the large CDATA section (it’s over 5000 lines in the file).

The only solution is to re-clone the repo but I can’t have everyone doing that twice a day etc.

I cannot use auto-layout on these packages as the solution. Developers need to be able to organise them in a helpful way.

I see that Microsoft introduced the CDATA layout in about 2011. We are using SQL Server 2014 Enterprise, Visual Studio 2013 update 5. All git operations are through the VS GUI. No command line access.

I’m really not sure what to do next. The entire source control system is now at risk. We moved away from TFS source control because it had problems in our Citrix environment. I could consider other systems but it would be a shame to move away from GIT. Anyone know if later versions of VS would help?

Many thanks in advance for any help given!

C4Cat100
  • 1
  • 1
  • Question: I use both git and SQL Server heavily, but I don't know what an SSIS package is. Is this a binary file? – Tim Biegeleisen May 06 '18 at 08:06
  • No, SSIS is an ETL tool. Files are all xml like. – C4Cat100 May 06 '18 at 09:27
  • I should add that they are created using Visual Studio as the GUI. You could craft them by hand but you really wouldn’t. – C4Cat100 May 06 '18 at 09:30
  • Can you see if this network drive problem is related? https://stackoverflow.com/questions/29942143/failed-to-inflate-packfile-visual-studio-error – Mark Wojciechowicz May 08 '18 at 15:20
  • Thanks for that. Actually the local repo is on a shared drive and we did have this problem when originally setting up. We fixed it in pretty much the way described in that post by cloning to a local drive and then moving it to the desired location on a shared drive letter. The commit/sync all works fine from then on, apart from the circumstances I described in my post so it doesn’t seem like the shared drive issue is the cause of my problem. – C4Cat100 May 11 '18 at 14:39

1 Answers1

0

Answering my own question, I upgraded to Visual Studio 2017 with the latest SQL Server Data Tools and this seems to have fixed all the problems with Git interaction.

I can clone straight to a network drive and I have not been able to reproduce any of my previous problems with the Git fetch.

I suppose the moral of the story is to stay up to date.

C4Cat100
  • 1
  • 1