当我打开Visual Studio并从TFS获得解决方案时,我在输出窗口中有以下消息:
TF401190:本地工作区[MACHINE_NAME; USER_NAME]具有 其中158412项,超过了建议的100000限制 项目。要提高性能,请减少项目数量 工作区,或将工作区转换为服务器工作区。
这不是一个错误,而是一个警告,我可以正常工作,虽然我觉得在我的工作中有一个真正的性能打击。
为了解决这个问题,我希望一方面能够"斗篷"我不使用的单个分支/文件夹。另一方面,我不想披露太多,一般来说我想知道是否有一些文件夹里面有不必要的文件。
问题:是否有TFS控制台/ PowerShell命令或某些内容可以检索TFS本地工作区中可以从我的Visual Studio客户端计算机执行的项目计数?类似于Treesize-App的东西,但对于TFS?
我用谷歌搜索了一下,但没有发现任何真正有用的东西。 I found this on MSDN确认了我收到消息的原因,但它没有提供任何解决方案。 Here是一个试图做某事的人,但该项目从来没有让它成为代码复制品。我们的团队使用VS2013 Update 5 / TFS 2013 Update 5
感谢您的帮助。
答案 0 :(得分:6)
你可以这样做,例如使用TFS API:
var uri = new Uri("https://tfs.mydomain.com/tfs/myteamprojectcollection")
var tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(uri);
var vcs = tpc.GetService<VersionControlServer>();
var itemSet = vcs.GetItems("$/MyServerPath",RecursionType.Full);
Console.WriteLine(itemSet.Items.Length);
您可以将其放入控制台应用程序中,或者如果更改语法,也可以将其称为PowerShell脚本。
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.VersionControl.Client")
$url = "https://tfs.mydomain.com/tfs/myteamprojectcollection";
$tfs = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($url)
$vcs = $tfs.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
$set = $vcs.GetItems("$/MyServerPath", [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::Full)
Write-Host $set.Items.Length