Как я могу найти все метки для конкретной подпапки проекта 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