如何找到特定TFS项目子文件夹的所有标签?

时间:2012-04-04 18:11:56

标签: tfs tfvc

假设有一个包含子文件夹Projecttrunk的TFS项目1.0trunk包含此项目的应用程序代码的最新版本,1.0包含同一发布版本的同一应用程序的代码。

两个子文件夹都有标签,所有标签只包含一个子文件夹中的文件。 [你也可以假设标签在整个子文件夹中的所有文件的特定(最大)变更集上递归,如果这简化了你的答案。]

如何使用Visual Studio,TFS tf.exe命令行工具或公开(并且自由)可用的任何其他工具或代码,为其中一个子文件夹创建标签列表。< / p>

注意 - 我编写了T-SQL代码,直接查询TFS版本控制数据库以生成此信息,但我很好奇是否有“更好”的方法。

3 个答案:

答案 0 :(得分:34)

在Visual Studio中,在源代码管理资源管理器窗口中,右键单击要列出相关标签的子文件夹,然后从中选择查看历史记录上下文菜单。在应该出现的历史窗口中,应该有一个子选项卡标签(如下所示),其中列出了应用于该子文件夹的标签(但不是特定的项目)那个子文件夹)。

enter image description here

答案 1 :(得分:2)

在Visual Studio中查找标签

  1. 打开源代码管理资源管理器

  2. 源代码管理资源管理器中,打开您要查找的集合,团队项目,分支,文件夹或文件的快捷菜单

  3. 选择查看历史记录。您将看到一个包含所有更改集的新窗口。

  4. 在标签菜单中选择标签,如下图所示。

  5. enter image description here

答案 2 :(得分:2)

我今天需要在命令行上执行此操作,所以这里有一个批处理文件,希望它能做同样的事情(我们只是刚开始使用TFS并且文件夹上的标签有限以测试OP&#39; s要求)。

您需要将收集参数编辑为tf以适应您的设置,并根据您的身份验证方式提供登录详细信息。

@ECHO OFF
SETLOCAL EnableDelayedExpansion

@REM Check required parameters
IF [%1]==[] GOTO :usage

tf labels /owner:* /format:detailed %2 /collection:http://server:8080/tfs/collection > labels.txt 2> nul

SET CURRENT_LABEL=
FOR /F "tokens=1,2,3" %%G IN (labels.txt) DO (
    IF [%%G]==[Label] (
        SET CURRENT_LABEL=%%I
    ) ELSE (
        IF /I [%%H]==[%1] (
            ECHO !CURRENT_LABEL!
        )
    )
)
DEL labels.txt

GOTO :eof
@REM Subroutines

:usage
echo tfs_labelsforfolder - Display all labels that are applied to a folder.
echo.
echo tfs_labelsforfolder ^<folder^> ^[label_filter^]
echo.
echo     folder       - The folder to show the labels for, e.g. $/Project/folder
echo     label_filter - Search pattern to use in tf labels command.
echo.
GOTO :eof
相关问题