[update 2020.1.20]
[update 2017.2.11]
--
很多用户在使用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 /?
Microsoft (R) TF - Team Foundation Version Control Tool, Version 12.0.30501.0
Copyright (c) Microsoft Corporation. All rights reserved.
Displays all or a part of the contents of a Team Foundation version control
server.
tf dir itemspec [/version:versionspec] [/recursive]
[/folders] [/deleted] [/login:username,[password]]
[/collection:TeamProjectCollectionUrl]
Versionspec:
Date/Time D"any .Net Framework-supported format"
or any of the date formats of the local machine
Changeset number Cnnnnnn
Label Llabelname
Latest version T
Workspace Wworkspacename;workspaceowner
下面用一个例子来说明如何使用这个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。你可以通过下面的链接下载安装文件:
在安装了TFSAdmin插件的团队资源管理器中,我们会发现在代码库中右击,会多出一个菜单“TFSadminToolkit – Find in files”(如下图)
Figure 2 - 查询菜单
Figure 3 - 查询窗口
可以在这个窗口中输入文件名、正则表达式查询文件,也可以在窗口中输入代码,查找包含源代码字符的文件。