简体   繁体   English

使用GIT提取的SSIS-无法将packfile膨胀

[英]SSIS with GIT fetch - failed to inflate packfile

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”. 在我的小型团队中,当一个开发人员对相当大的SSIS包进行更改并将更改提交到GIT服务器时,这将导致所有其他想要拉出该提交的用户遇到失败,并显示消息“ failed to”。压缩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. 我有一个SSIS包,其中包含许多数据流任务。 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. 我认为这与SSIS包文件的大小没有直接关系。 I have bigger packages using lots of SQL tasks for example and they are fine. 我有使用很多SQL任务的较大软件包,例如,它们很好。

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. 如果删除了CDATA部分的内容(有效地将程序包置于自动布局模式),则可以提交更改。 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). 我猜想有关GIT如何计算packfile中的增量的问题对于大型CDATA部分(文件中超过5000行)有问题。

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. 我看到Microsoft大约在2011年引入了CDATA布局。我们正在使用SQL Server 2014 Enterprise,Visual Studio 2013更新5。所有git操作都是通过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. 我们放弃了TFS源代码管理,因为它在Citrix环境中存在问题。 I could consider other systems but it would be a shame to move away from GIT. 我可以考虑使用其他系统,但是离开GIT实在令人遗憾。 Anyone know if later versions of VS would help? 有人知道VS的更高版本是否有帮助?

Many thanks in advance for any help given! 预先非常感谢您提供的任何帮助!

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. 在回答我自己的问题后,我使用最新的SQL Server数据工具升级到了Visual Studio 2017,这似乎已经解决了Git交互的所有问题。

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. 我可以直接克隆到网络驱动器,但无法重现以前使用Git提取的任何问题。

I suppose the moral of the story is to stay up to date. 我想这个故事的寓意是保持最新。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM