Tfs" Check-out lock"消耗更多资源并减缓VS 2015?

时间:2018-04-15 11:43:09

标签: visual-studio tfs resharper tfvc

我最近加入了我的工作团队,该团队使用" 结帐锁定"在TFS。

Check-out lock 表示在其他团队成员的计算机上签出文件时,没有任何团队成员可以编辑该文件。

这是我第一次使用这种锁,通常我在没有任何锁的项目上工作,我注意到我的 VS(2015)和我的队友非常慢,特别是在做的时候例如:添加新文件,获取最新版本(visual studio暂时没有响应)和编写代码。

我最近安装了 Resharper (在安装之前VS速度很慢)并在其下标记了性能指南: 正在使用的源代码管理插件作为影响性能。

有没有办法证明我的担忧,所以我的TL会接受我的意见并删除这种锁定类型?

1 个答案:

答案 0 :(得分:3)

每次开始编辑文件时,如果对TFVC使用独占签出,Visual Studio将需要进行服务器往返以检查服务器上文件的锁定状态,然后将其锁定。如果TFS服务器很慢或很远,这可能需要一段时间。该团队可能还配置了#34;获取结帐时的最新信息"这将进行几次额外的往返。

向解决方案添加文件时,问题会更加严重,因为Visual Studio需要锁定项目文件和正在添加的文件。如果是新表单或控件,这通常会导致创建多个文件。

2012年,TFS推出了一种新的工作空间类型TFVC,即本地工作空间。此类型不支持独占结账并在本地保持编辑状态。因此,它更快,当您不总是连接并且通常具有更好的性能(达到特定大小的工作空间)时效果更好。此工作空间类型是最新版本TFS的默认工作空间类型。

您的同事的性能问题似乎与TFVC工作区类型没有直接关系,也没有使用独家结账。来自Resharper的警告只是您启用了任何源控件集成:

  

源控制|插件选择:为源控件插件选择“无”。这将关闭Git或其他VCS提供商并提高整体性能。

使用TFVC时,由于额外的网络往返,只会导致导致服务器交互的操作变慢。正常工作不应受到负面影响。这表明您的同事在他的机器上或他们正在使用的解决方案中存在其他问题。这可能是由于某些扩展或由于项目规模较大造成的。 Visual Studio 2015是Visual Studio的第一个版本,依赖于Roslyn进行编译,它有它的问题。在Visual Studio 2017中(特别是在15.6及更高版本中),性能问题已大大减少。

如果你想说服你的老板停止独家结账,我还会为你做一些其他的弹药:

  • 向TFVC添加了独家签出,以支持Source Safe中的旧工作流程,并防止合并二进制文件时出现问题。
  • 即使在2005版本中也不鼓励进行独家结帐。
  • 2012年推出的本地工作空间完全取消了对专属结账的支持。
  • TFS和VSTS中新的事实标准源控制机制是Git。由于其分布式特性,它没有独家结账的概念。
  • 在许多情况下,独占锁定是代码库中其他问题以及团队协作模式的指标。
  • 如果担心要删除合并冲突,请更好地合并。

你的团队很可能已经习惯了,只要他们锁定了所有内容,他们就不必合并。它会引起不同的挫折。一些性能影响就是其中之一。但不是你所描述的性能影响。