Как я могу найти все метки для конкретной подпапки проекта TFS?

Предположим, что существует проект TFS Project с подпапками trunk и 1.0. trunk содержит последнюю версию кода приложения для этого проекта, а 1.0 содержит код для того же приложения для выпущенной версии с тем же именем.

Есть метки для обеих подпапок, и все ярлыки включают файлы только в одну из подпапок. [Вы также можете предположить, что метки являются рекурсивными для определенного (максимального) набора изменений для всех файлов во всей подпапке, если это упрощает ваш ответ.]

Как создать список меток для одной из этих подпапок, используя Visual Studio, инструмент командной строки TFS tf.exe или любой другой инструмент или код, который доступен (и свободно). >

Примечание. Я написал код T-SQL, который напрямую запрашивает базу данных управления версиями TFS, чтобы генерировать эту информацию, но мне любопытно, есть ли "лучшие" способы сделать это.

Ответы

Ответ 1

В Visual Studio в окне "Проводник управления версиями" щелкните правой кнопкой мыши подпапку, для которой вы хотите перечислить соответствующие метки, и выберите "Просмотр истории" в контекстном меню. В окне "История", которое должно появиться, должны быть метки суб-вкладок (как указано ниже), в которых указаны метки, применяемые к этой подпапке (но не определенные элементы в этой подпапке).

enter image description here

Ответ 2

Поиск ярлыков в Visual Studio

  • Откройте проводник управления источниками.

  • В проводнике исходного кода откройте контекстное меню для коллекций, командного проекта, ветки, папки или файла, который вы ищете. p >

  • Выберите История просмотров. Вы увидите новое окно со всеми Изменениями.

  • Выберите Ярлыки в меню вкладки, как показано на рисунке ниже.

enter image description here

Ответ 3

Мне нужно было сделать это в командной строке сегодня, так что вот пакетный файл, который, надеюсь, сделает то же самое (мы только начали использовать TFS и имели ограниченные метки в папках для проверки требований OP).

Вам нужно будет отредактировать параметр коллекции до 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