在Team Foundation Server (TFS)的代码库或配置库中查找文件或代码

[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 /?
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

SNAGHTMLafdd994

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”(如下图)

image

Figure 2 - 查询菜单

SNAGHTMLb0783f2

Figure 3 - 查询窗口

可以在这个窗口中输入文件名、正则表达式查询文件,也可以在窗口中输入代码,查找包含源代码字符的文件。

http://www.cnblogs.com/danzhang 张洪君

原文地址:https://www.cnblogs.com/danzhang/p/4354251.html