Visual studio Visual Studio TFS合并对话框对于选项“0”显示较慢;“选定变更集”;

Visual studio Visual Studio TFS合并对话框对于选项“0”显示较慢;“选定变更集”;,visual-studio,tfs,Visual Studio,Tfs,当使用Visual Studio和TFS(版本为2015,但我相信所有版本都存在此问题)并且您希望将选定的变更集从一个分支合并到另一个分支时,可能需要很长时间才能显示合并对话框 在研究这个问题时,我在Tfs_DefaultCollection数据库中发现了一个名为prc_PendMerge的存储过程,它被调用来检索合并对话框的项。在我们的例子中,它从tbl_Version表返回大约150万行,资源由1500万个SQL读取、超过100000个CPU组成,持续时间约为3分钟 我发现tbl_版本中95

当使用Visual Studio和TFS(版本为2015,但我相信所有版本都存在此问题)并且您希望将选定的变更集从一个分支合并到另一个分支时,可能需要很长时间才能显示合并对话框

在研究这个问题时,我在Tfs_DefaultCollection数据库中发现了一个名为prc_PendMerge的存储过程,它被调用来检索合并对话框的项。在我们的例子中,它从tbl_Version表返回大约150万行,资源由1500万个SQL读取、超过100000个CPU组成,持续时间约为3分钟

我发现tbl_版本中95%的行用于文件AssemblyInfo.xx。我们使用TFS自动构建我们的解决方案,该解决方案由大约300个项目组成,版本自动递增。因此,每个构建都会向tbl_版本表中添加300行

作为测试,我直接修改了prc_PendMerge以排除这些文件,并且能够将合并对话框的时间减少到10秒左右。然而,这可能不是解决这个问题的正确方法,所以我想看看是否有更好的方法

是否有任何方法可以截断所有这些AssemblyInfo.xx文件的版本历史记录,而只保留当前版本?我希望tf.exe实用程序可能有某种/truncatehistory命令,但我找不到


另外,我知道可以通过在单个子文件夹上执行合并来加快速度。然而,这并没有真正的帮助,因为我通常必须合并同时覆盖多个子文件夹的变更集。

似乎您有一个性能问题。但这个问题在我这方面是无法复制的。请尝试创建一个灯光项目,看看是否会重现此问题。新项目可以正常工作。当需要将代码从一个项目的主干合并到一个分支项目,并且主干在tbl_版本表中有150多万行时,就会出现这个问题。如果您查看该存储过程,您将看到它在何处执行与自身的左外部联接,这就是我发现减速发生的地方。提高速度的唯一方法是减少行数。当我排除与AssemblyInfo相关的行(占签入的95%)时,该语句将在10秒内执行。