[update 2020.1.20]
修改参考连接为:https://devblogs.microsoft.com/devops/announcing-code-search-on-team-foundation-server-2017/
[update 2017.2.11]
最新版本的TFS 2017已经增加了代码搜索功能,可以参考这个链接 https://blogs.msdn.microsoft.com/visualstudioalm/2016/11/16/announcing-code-search-on-team-foundation-server-2017
--
很多用户在使用TFS的过程中,都抱怨一个问题,不能在TFS的代码库中查找文件!虽然TFS的所有数据都存储在数据库中(SQL Server),但是由于代码文件存储的特殊性,你不能通过全文搜索的功能直接在数据库里查询。当前最新版本TFS 2013 update 4和TFS Online,也没法在界面上找到与代码有关的搜索功能。
但是通过调研,发现TFS代码库中的查询功能,有以下几中方法:
1. 利用TFS代码的命令行工具TF.exe查询代码库中文件
TFS代码的命令行工具TF.exe几乎可以完成在UI界面下的所有操作。通过使用“dir”命令可以在远程代码库里按照文件名或者正则表达式查询文件。
下表是tf dir的帮助信息:
C:Usersdanzhang>tf dir /? Displays all or a part of the contents of a Team Foundation version control tf dir itemspec [/version:versionspec] [/recursive] Versionspec: |
下面用一个例子来说明如何使用这个dir命令。例如“需要在代码库的$/目录下查询所有的word文件,并将查询结果输出到SearchResult.txt中”,那么可以使用下面的命令:
C:DataDanZhang>tf dir "$/*.doc" /recursive /collection:http://tfsserver:8080/tfs/DefaultCollection > SearchResult.txt
Figure 1 - 查询结果
2. 利用TFS插件查询代码库中的文件或代码
上面提到了利用TFS自身的工具实现文件查询,我们还可以利用第三方的插件查询文件,甚至代码。这里介绍有名的工具TFS Administrators Toolkit for VS 2013。你可以通过下面的链接下载安装文件:
https://visualstudiogallery.msdn.microsoft.com/33713c5d-31a3-44b3-ae94-3c413e6b21c7
在安装了TFSAdmin插件的团队资源管理器中,我们会发现在代码库中右击,会多出一个菜单“TFSadminToolkit – Find in files”(如下图)
Figure 2 - 查询菜单
Figure 3 - 查询窗口
可以在这个窗口中输入文件名、正则表达式查询文件,也可以在窗口中输入代码,查找包含源代码字符的文件。