Получить последнюю версию папки из TFS, используя Powershell

Я пытаюсь " Получить последнюю версию " определенной папки из TFS, используя Powershell.

Я установил TFS Snappin и использовал командлеты TFS Power Tools в PowerShell (например, Get-TfsChildItem, Select-TfsItem и т. Д.) [ Как настроить TFS PowerShell Snapin ] и изучил их документацию (которую я не делал). не найти достаточно объяснений!).

Смущен тем, какой именно командлет использовать, когда я пытаюсь получить последнюю версию всей структуры папок из TFS, которая сопоставлена ​​с моим локальным диском (а не только с набором изменений или ChildItem).

Пример: путь Tfs - $/APD-RepairSolutions/Main/Database

Сопоставленный путь - D:\TFS\APD-RepairSolutions/Main/Database.

Мне нужен код, который бы итеративно получал последнюю версию всей папки базы данных (с количеством таблиц, хранимых процедур и т. Д.)

Я использую..

PS D:\Tfs\APD-RepairSolutions\Main\Database> $server=Get-TfsServer -Name http://tfs:8080/tfs

PS D:\Tfs\APD-RepairSolutions\Main\Database> Get-TfsChangeset -Recurse -Server $Server

Не помогает мой случай - он возвращает только последние изменения в текущем каталоге.

3 ответа

Решение

Чтобы получить последние (tf get) использовать Update-TfsWorkspace,

Get-TfsChangeset является эквивалентом tf changeset,

Если вы хотите использовать вместо этого TFS API, вы можете использовать метод Workspace.Get:

# Load the TFS assemblies
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
$ws = $vcServer.QueryWorkspaces("<WORKSPACENAME>", $null, $null);

# Specify properties of intended workspace get
$recursionType = [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::Full
$latestVersion = [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest
$getOptions = [Microsoft.TeamFoundation.VersionControl.Client.GetOptions]::GetAll

# Get what I want!
$ws.Get("$/Remote/Folder", $latestVersion, $recursionType, $getOptions)

Было бы неплохо заменить пустые значения именем вашего домена и именем компьютера при запросе рабочих областей.

Попался! с обновлением-TFSWorskpace. Также имеет несколько полезных параметров. -Items используется для указания точных элементов, которые вы хотите обновить.

PS D:\Tfs\APD-RepairSolutions\Main>Update-TFSWorkspace -All -Overwrite -Force -Recurse -Items .\Database

Рабочая область заменена обновленными версиями элементов. Спасибо @Kmoraz!

Другие вопросы по тегам