在文件中查找:搜索Team Foundation Server中的所有代码

时间:2020-03-05 18:46:51  来源:igfitidea点击:

有没有一种方法可以在TFS中搜索每个文件的最新版本以查找特定的字符串或者正则表达式?这可能是我从Visual Source Safe中错过的唯一一件事...

目前,我在整个代码库上执行"获取最新信息"并使用Windows搜索,但是在75,000个文件中使用超过1GB的代码会给我们带来极大的痛苦。

编辑:尝试过提及的powertools,但"通配符搜索"选项似乎仅搜索文件名而不显示内容。

更新:我们在现有的MOSS(搜索服务器)安装中实现了自定义搜索选项。

解决方案

回答

如果安装TFS 2008 PowerTools,则在Team Explorer的右键单击菜单中将获得"在源代码管理中查找"操作。

TFS2008电动工具

回答

Team Foundation Server 2015(本地)和Visual Studio Team Services(云版本)包括内置支持,可在我们所有的代码和工作项中进行搜索。

我们可以进行简单的字符串搜索(如foo),布尔运算(如foo OR bar)或者更复杂的语言特定的内容(如class:WebRequest)。

我们可以在此处了解更多信息:https://www.visualstudio.com/zh-cn/docs/search/overview

回答

我们已经为Team Foundation Server源代码控制(不是我们提到的SourceSafe)建立了一个类似于Grant所建议的解决方案。预定的TF Get,Search Server Express。但是,用于Cfile(文本)的IFilter没有提供我们想要的结果,因此我们将源文件转换为.htm文件。现在,我们可以将其他元数据添加到文件中,例如:

  • 作者(我们将其定义为上次签入文件的人)
  • 颜色编码(在我们的待办事项清单上)
  • 指示潜在设计问题的更改数量(在我们的待办事项列表上)
  • 与VSTS IDE集成,例如Koders SmartSearch功能
  • 等等。

但是,我们希望使用TFS源代码管理的协议处理程序,以及专用于源代码的IFilter来获得更具针对性的解决方案。

回答

该加载项声称具有我们认为需要的功能:

团队基础同伴

回答

另一种解决方案是使用" ctrl + shift + F"。我们可以将搜索位置更改为本地目录,而不是解决方案或者项目。这将代替桌面搜索,我们仍然需要获取最新的代码,但是它将使我们可以留在Visual Studio中进行搜索。

回答

还有另一种替代解决方案,它似乎更具吸引力。

  • 设置搜索服务器-可以是任何Windows计算机/服务器
  • 设置TFS通知服务*(Bissubscribe),以便在每次签入时获取,删除和更新文件。因此,这是一个Web服务,其行为类似于TFS服务器上的侦听器,并更新/同步Search服务器上的文件和文件夹。 -这将大大提高准确性(实时搜索),并避免进行定期获取的一次性负担
  • 在搜索服务器上为根文件夹设置索引服务/ Windows索引搜索
  • 公开网络服务以返回搜索结果

现在,通过上述所有设置,我们可以为客户端提供一些选择:

  • 设置网页以调用搜索服务并格式化结果以显示在网页上-我们也可以将此网页集成到Visual Studio中(通过宏或者插件)
  • 创建Windows客户端界面(winforms / wpf)来调用搜索服务并格式化结果并将其显示在UI上-我们还可以通过VSPackages或者外接程序将此客户端工具集成到Visual Studio中

更新:
我确实走过这条路线,而且运作良好。只是想添加到此。

参考链接:

  • 使用此工具代替bissubscribe.exe
  • 处理TFS事件
  • 团队系统通知

回答

好的,

  • TFS2008 Power Tools没有文件查找功能。 "在源代码管理中查找工具提供了根据项目状态或者通配符表达式在源代码管理中定位文件和文件夹的功能。"
  • CodePlex上发布了具有此功能的Windows程序。我刚刚安装并测试了它,效果很好。